Sentinel干扰在c ++中找到最小值

时间:2015-02-17 17:45:27

标签: c++

我正在尝试编写一个考试成绩的程序。(一旦用户输入成绩,他应该按-1。程序应该找到最高和最低等级并计算平均值所有成绩。 我的问题是-1总是计算的最小等级。我尝试通过输入intmain1 = 999(一个非常大的数字)来解决这个问题,但它也没有用。 有什么建议? 非常感谢你!

#include <iostream>
using namespace std;
int main(){
int grade1,average1;
int max1=0;
int min1=0;
int counter=0;
int sum=0;
    cout<<"Enter grades of quiz 1. Use '-1' when there are no more grades."<<endl;
    cin>>grade1;
while (grade1!=-1){
    cin>>grade1;
    counter++;
    sum=sum+grade1;
    if (grade1>max1)
        max1=grade1;
    else if (grade1<min1)
        min1=grade1;
}
average1=sum/counter;
cout<<"The maximum grade of quiz 1 is"<<max1<<endl;
cout<<"The minumum grade of quiz 1 is"<<min1<<endl;
cout<<"THe average of quiz one is"<<average1<<endl;

}

1 个答案:

答案 0 :(得分:0)

您需要做的就是将cin>>grade1;从while循环的第一行移到最后一行。在编写代码时,一旦输入-1,它就会完成循环中的所有逻辑,然后最终停止,在处理-1之前要停止它。