AngelovIvan 2 лет назад
С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;
}
Загрузка…
Отмена
Сохранить