Сommit
0bc7ff4c22
@ -0,0 +1,124 @@
|
||||
#include <iostream>
|
||||
#include <math.h>
|
||||
#include <vector>
|
||||
using namespace std;
|
||||
|
||||
int main()
|
||||
{
|
||||
size_t colls;
|
||||
size_t quantity;
|
||||
size_t height;
|
||||
cerr << "vvedite kolichestvo chisel" << endl;
|
||||
cin >> colls;
|
||||
vector<float> numbers(colls);
|
||||
cerr << "vvedite massiv" << endl;
|
||||
for (int i = 0; i < colls; i++)
|
||||
{
|
||||
cin >> numbers[i];
|
||||
}
|
||||
cerr << "vvedite kolichestvo diapazonov" << endl;
|
||||
cin >> quantity;
|
||||
bool heightbl = false;
|
||||
while (!heightbl)
|
||||
{
|
||||
cerr << "vvedite velichiny gistogrammy"<<endl;
|
||||
cin >> height;
|
||||
if (height < colls / 3 - 4 && height < 3 && height>76)
|
||||
{
|
||||
cerr << "vvedena nevernaya velichina gistogrammy. vvedite novoe znachenie"<<endl;
|
||||
}
|
||||
else
|
||||
{
|
||||
heightbl = true;
|
||||
exit;
|
||||
}
|
||||
}
|
||||
height = height - 4;
|
||||
float minimum = numbers[0];
|
||||
for (int i = 0; i < colls; i++)
|
||||
{
|
||||
if (numbers[i] < minimum)
|
||||
{
|
||||
minimum = numbers[i];
|
||||
}
|
||||
}
|
||||
float maximum = numbers[0];
|
||||
for (int i = 0; i < colls; i++)
|
||||
{
|
||||
if (numbers[i] > maximum)
|
||||
{
|
||||
maximum = numbers[i];
|
||||
}
|
||||
}
|
||||
float low = minimum;
|
||||
|
||||
float diff = (maximum - minimum) / quantity;
|
||||
float high = minimum+diff;
|
||||
vector<int> count(quantity);
|
||||
for (int i = 0; i < quantity; i++)
|
||||
{
|
||||
if (i + 1 == quantity)
|
||||
{
|
||||
high=maximum;
|
||||
}
|
||||
int sum = 0;
|
||||
for (int j = 0; j < colls; j++)
|
||||
{
|
||||
if (numbers[j] < high && numbers[j] >= low && high!=maximum)
|
||||
{
|
||||
sum++;
|
||||
}
|
||||
if (high == maximum && numbers[j] <= high && numbers[j] >= low)
|
||||
{
|
||||
sum++;
|
||||
}
|
||||
}
|
||||
count[i] = sum;
|
||||
low += diff;
|
||||
high += diff;
|
||||
}
|
||||
int maxnum = 0;
|
||||
int maxcount = count[0];
|
||||
for (int i = 0; i < quantity; i++)
|
||||
{
|
||||
if (maxcount > count[i])
|
||||
{
|
||||
maxcount = count[i];
|
||||
maxnum = i;
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < quantity; i++)
|
||||
{
|
||||
if (count[i] < 100)
|
||||
{
|
||||
cout << " ";
|
||||
}
|
||||
if (count[i] < 10)
|
||||
{
|
||||
cout << " ";
|
||||
}
|
||||
cout << count[i] << " | ";
|
||||
if (maxcount > height)
|
||||
{
|
||||
count[i] = height * (static_cast<double>(count[i]) / maxcount);
|
||||
for (int j = 0; j < count[i]; j++)
|
||||
{
|
||||
cout << "*";
|
||||
}
|
||||
cout << endl;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int j = 0; j < count[i]; j++)
|
||||
{
|
||||
cout << "*";
|
||||
}
|
||||
cout << endl;
|
||||
}
|
||||
|
||||
}
|
||||
getchar();
|
||||
getchar();
|
||||
return 0;
|
||||
}
|
Загрузка…
Ссылка в новой задаче