描述
找出若干个数中最大的那个数。
输入
随机输入若干个数
输出
输出若干个数中的最大值
代码
*错误范例1
#include<iostream>
using namespace std;
int main()
{
int x,max;
cin>>max; //输入一个初始值
while(cin>>x) //把输入放到while语句里即可实现无数次输入
{
if(x>max)
max=x; //和后输入的对比,谁大要谁
}
cout<<max<<endl;
return 0;
}
错误原因:
因为输入的是若干个数,没有明确告诉是多少个,所以要一直保持接收输入的状态,也就不会跳转到输出cout那里,导致程序无法输出
*错误范例2
#include<iostream>
using namespace std;
int main()
{
int x, max;
cin >> max; //输入一个初始值
while (cin >> x) //把输入放到while语句里即可实现无数次输入
{
if (x > max)
max = x; //和后输入的对比,谁大要谁
cout << max << endl;
}
return 0;
}
错误原因:
相比于错误1,把输出放到了循环语句里,固然有了输出结果,但是会导致把比较进行时的结果都输出出来,比如11 33 21 55 9 ,由于33比11大,就直接输出了33,33比21大又输出了依次33,55比33大,又输出了55,55比9大又输出了55,所以结果就变成了33335555这种奇怪的亚子。。。
解决方法:
先告诉计算机要输入多少个数,然后比较多少次再输出
#include<iostream>
using namespace std;
int main()
{
int i,n,x, max;
cin >> n; //告诉要输入多少数字
cin >> max; //输入一个初始值
for (i = 1; i < n; i++) //和输入的第一个数比较n-1次
{
cin >> x; //再输入n-1个数
if (x > max) //比较
max = x; //谁大要谁
}
cout << max << endl;
return 0;
}