用while函数来进行输入和判断,第一段代码,用到了if判断和continue命令来跳出本次循环来减去误输入大于100的值对结果的影响,还考虑到了首次输入是否违法的情况。
#include<iostream>
using namespace std;
int main()
{
int x,max,min;
cout<<"请输入若干个学生的成绩(0<=x<=100),将输出最大和最小,输入负值时结束输入。"<<endl;
cin>>x;
if(x>=0&x<=100) //判断第一个值是否违法
{
max=min=x; //先给最大和最小赋最初的值,方便比较
while(x>=0)
{ if(x>100) //此判断是为了排除大于100的数对数据的干扰
{cout<<"该值超出范围,请重新输入"<<endl;
cin>>x;
continue;} //continue跳出本次循环,可以剔除大于100的值
if(max<x)max=x;
if(min>x)min=x;
cin>>x; //先比较,再进行新值的输入,进行循环输入,否则最小值可能会为作为跳出条件的负值
}
cout<<"最大值为"<<max<<"最小值为"<<min<<endl;
}
else cout<<"请重新输入。"<<endl;
system("pause");
return 0;
}
第二段代码为精简版(不考虑首次输入是否违法,也不考虑是否输入了大于100的值)
#include<iostream>
using namespace std;
int main()
{
int x,max,min;
cout<<"请输入若干个学生的成绩(0<=x<=100),将输出最大和最小,输入负值时结束输入。"<<endl;
cin>>x;
max=min=x; //先给最大和最小赋最初的值,方便比较
while(x>=0)
{
if(max<x)max=x;
if(min>x)min=x;
cin>>x; //先比较,再进行新值的输入,进行循环输入,否则最小值可能会为作为跳出条件的负值
}
cout<<"最大值为"<<max<<"最小值为"<<min<<endl;
system("pause");
return 0;
}