【发布时间】:2016-08-06 09:52:43
【问题描述】:
我创建了一个允许用户输入 10 个等级的程序。我使用了一个 while 循环将成绩存储在数组中,但如果用户只有 5 个成绩要输入,他可以键入 done 退出程序。
循环结束后,会计算并显示。数组内的最高分、最低分和平均分
不幸的是,当用户输入完成后,程序将显示其余未输入的成绩行。
您能帮我找出如何阻止 while 循环显示该循环的其余未输入成绩吗?
#include <iostream>
using namespace std;
int main()
{
const int SIZE = 10;
int grade[SIZE];
int count = 0;
int lowestGrade;
int highestGrade;
bool done = false;
cout << "This program is limited to entering up to 10 grades." << endl;
while ( grade[count] != done && count < SIZE)
{
cout << "Enter a grade #" << count + 1 << " or done to quit: ";
cin >> grade[count];
count++;
}
//LOWEST GRADE
lowestGrade = grade[0];
for (count = 0; count < SIZE; count++)
if (grade[count] < lowestGrade)
{
lowestGrade = grade[count];
}
//HIGHEST GRADE
highestGrade = grade[0];
for (count = 0; count < SIZE; count++)
{
if (grade[count] > highestGrade)
{
highestGrade = grade[count];
}
}
//AVERAGE GRADE
double total = 0;
double average;
for (int count = 0; count < SIZE; count++)
total += grade[count];
average = (total / SIZE);
cout << endl;
cout << "Your highest grade is: " << highestGrade << endl;
cout << "Your lowest grade is: " << lowestGrade << endl;
cout << "Your average grade is: " << average << endl;
system("pause");
return 0;
}
【问题讨论】:
-
看代码
cin >> grade[count];。你如何将“完成”这个词放在一个用于成绩的数组中?也许-1这样的数字可以用来表示“完成”,然后检查输入的数字是否为-1?
标签: c++ arrays while-loop