找出指定数量学生的最高分,输入在第一行中给出正整数n,即学生人数。第二行给出n个非负整数,即这n位学生的成绩,其间以空格分隔。
问题描述:
输入样例:
4
82 54 98 73
输出样例:
98
我打的是
#include
using namespace std;
int main()
{
int n,t,i=1;
cin>>n;
for(i=2;i<=n;i++)
{ t=0;
int a;
cin>>a;
if(t<a)
t=a;
}
cout<<t;
return 0;
}
但提交后显示:
请问大佬怎么改正。
答
我觉得吧,2个问题。
-
首先int a要写到循环体前面去,因为你这样的话,每次循环就把a重置了一遍。
-
然后,t=0也要写到前面去,因为你每次都把t清零的话,那么最后的那个t不就永远是最后一名学生的成绩了吗
我也有可能想错了,你自己看看吧
答
你这个逻辑顺序应该是 先整个 列表,数列啥的,输入进去,数据量是循环次数。
调用数据循环,对此。结束。
需要的变量个数你想好。
你的变量个数好像少了。
最终要的是一个数据还是多个数据,我似乎没看清楚。
如果只需要最大数,两个变量就够了,还需要啥数据,加就好了