С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;
|
||||||
|
}
|
Загрузка…
Ссылка в новой задаче