Отображение оценок на графике

Я должен отображать оценки на графике, который показывает, сколько оценок в каждом интервале 0-10, 10-20, 20-30 и т. Д. * за каждый класс в интервале. Моя единственная проблема в том, что когда массив grade[] имеет 1, 2, 3 или 5 слотов * в интервале 0-10. Это работает с любым другим количеством слотов.

void sort_grades(int grades[],int students)

cout << endl << endl;
cout << " THE GRADES GRAPH"<< endl;
cout << "=============================="<<endl;

const int max_grade = 100;
const int interval=10;

for (int j = 0; j < max_grade; j+=10)
{
cout << j << " - " << (j+interval) << " : ";

for (int k = 0; k <= students; k++)
{
if (j==90 && grades[k] ==(j+interval)  )
{
cout<< "*";
}
else if (grades[k] < (j+interval) && grades[k] >= j)
{
cout<< "*";
}
}
cout << endl;
}

-2

Решение

Я предполагаю что students это размер массива grades[],

В этом случае вы получаете доступ к слишком большому количеству элементов в следующем цикле:

for (int k = 0; k <= students; k++)

Вместо этого строка должна выглядеть так:

for (int k = 0; k < students; k++)

Эта проблема делает не происходят только в тех случаях, когда grade[] имеет размер 1, 2, 3 или 5. Вы только увидеть проблема для этих размеров, потому что вывод зависит от содержимого массива.

0

Другие решения


По вопросам рекламы [email protected]