func: функции
Этот коммит содержится в:
86
main.cpp
86
main.cpp
@@ -5,46 +5,63 @@
|
||||
|
||||
using namespace std;
|
||||
|
||||
int main()
|
||||
{
|
||||
size_t n, bin, height;
|
||||
string str = "*";
|
||||
double max, min, step, a;
|
||||
int i, j;
|
||||
struct Input {
|
||||
vector<double>A;
|
||||
size_t bin{};
|
||||
};
|
||||
|
||||
Input
|
||||
input_data()
|
||||
{
|
||||
size_t n;
|
||||
cerr<<"Marks: ";
|
||||
cin>>n;
|
||||
|
||||
vector<double>A(n);
|
||||
|
||||
|
||||
for (i=0; i<n; i++)
|
||||
Input in;
|
||||
in.A.resize(n);
|
||||
for (size_t i=0; i<n; i++)
|
||||
{
|
||||
cerr<<"A["<<i<<"]=";
|
||||
cin>>A[i];
|
||||
cin>>in.A[i];
|
||||
}
|
||||
|
||||
cerr<<"Rows: ";
|
||||
cin>>bin;
|
||||
cin>>in.bin;
|
||||
return in;
|
||||
}
|
||||
|
||||
vector<size_t>B(bin);
|
||||
|
||||
max = 0;
|
||||
min = 10;
|
||||
|
||||
for (i=0; i<n; i++)
|
||||
void find_minmax(const vector<double>& A, double& min, double& max)
|
||||
{
|
||||
min = A[0];
|
||||
for (auto i = 0; i<A.size(); i++)
|
||||
{
|
||||
if (A[i]>max)
|
||||
max = A[i];
|
||||
if (A[i]<min)
|
||||
{
|
||||
min = A[i];
|
||||
}
|
||||
}
|
||||
|
||||
step = (max-min)/bin;
|
||||
|
||||
for (i=0; i<n; i++)
|
||||
max = A[0];
|
||||
for (auto i = 0; i<A.size(); i++)
|
||||
{
|
||||
for (j=0; j<bin; j++)
|
||||
if (A[i]>max)
|
||||
{
|
||||
max = A[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
vector <size_t> make_histogram (const vector<double>& A, size_t bin)
|
||||
{
|
||||
vector<size_t>B(bin);
|
||||
size_t max_count;
|
||||
double max, min;
|
||||
find_minmax(A, min, max);
|
||||
double step = (max-min)/(bin);
|
||||
|
||||
for (size_t i=0; i<A.size(); i++)
|
||||
{
|
||||
for (size_t j=0; j<bin; j++)
|
||||
{
|
||||
if ((A[i]>=(min+j*step))&&(A[i]<(min+(j+1)*step)))
|
||||
{
|
||||
@@ -54,13 +71,17 @@ int main()
|
||||
}
|
||||
}
|
||||
|
||||
for (i=0; i<n; i++)
|
||||
for (size_t i=0; i<A.size(); i++)
|
||||
{
|
||||
if (A[i]== max)
|
||||
B[bin-1]++;
|
||||
}
|
||||
return B;
|
||||
}
|
||||
|
||||
for (i=0; i<bin; i++)
|
||||
void show_histogram(vector<size_t>B, size_t bin)
|
||||
{
|
||||
for (size_t i=0; i<bin; i++)
|
||||
{
|
||||
if (B[i]<10)
|
||||
{
|
||||
@@ -71,14 +92,23 @@ int main()
|
||||
cout<<" ";
|
||||
}
|
||||
cout<<B[i]<<"|";
|
||||
for (j=0; j<B[i]; j++)
|
||||
for (size_t j=0; j<B[i]; j++)
|
||||
{
|
||||
cout<<"*";
|
||||
}
|
||||
cout<<endl;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int main()
|
||||
{
|
||||
Input in = input_data();
|
||||
auto B = make_histogram(in.A, in.bin);
|
||||
show_histogram (B, in.bin);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Ссылка в новой задаче
Block a user