跪求这道c++的答案,我的答案哪里错了呢???? 15
Description所谓NO.1,就是所有成绩都排在第一的同学,我们假设每个人只有理科,文科,体育这三门课。我们现在假设某门成绩并列第一,并列的人都是这门功课第一名,并...
Description
所谓NO.1,就是所有成绩都排在第一的同学,我们假设每个人只有理科,文科,体育这三门课。我们现在假设某门成绩并列第一,并列的人都是这门功课第一名,并且保证数据不会出现2个NO.1现给定n个人的信息,输出第一面的名字。
Input
多组数据,输入文件第一行为一个整数T,代表测试数据数。 (T<50)接下来T个测试数据。 每个测试数据的的第一行为一个整数n(n<=100),接下来有n行,每行的格式如下: 名字 理科成绩 文科成绩 体育成绩 (数值越高代表成绩越好).名字长度不超过20,3个成绩的为正整型.
Output
对于每个测试数据,输出NO.1的名字,如果不存在第一名,就输出"NO NO.1".
Sample Input
3
2
lvhao 2 2 2
xiaoshua 1 1 1
2
lvhao 4 4 4
xiaoshua 4 4 3
3
lvhao 3 4 5
xiaoshua 1 3 1
pan 4 1 5Sample Output
lvhao
lvhao
NO NO.1
#include<stdio.h>
#include<math.h>
struct student
{
char name[8];
int score[4];
}stu[50];
int main()
{
int m,n,i,j,k,max,maxj[3];
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;i++)
{
scanf("%d",&m);
for(j=0;j<m;j++)
{
scanf("%s",stu[j].name);
for(k=0;k<3;k++)
{
scanf("%d",&stu[j].score[k]);
}
}
max=0;
for(k=0;k<3;k++)
{
for(j=0;j<m;j++)
{
if(stu[j].score[k]>max)
{
max=stu[j].score[k];
maxj[k]=j;
}
}
}
if(maxj[0]==maxj[1]&&maxj[1]==maxj[2]) printf("%s\n",stu[maxj[0]].name);
else printf("NO NO.1\n");
}
}
return 0;
} 展开
所谓NO.1,就是所有成绩都排在第一的同学,我们假设每个人只有理科,文科,体育这三门课。我们现在假设某门成绩并列第一,并列的人都是这门功课第一名,并且保证数据不会出现2个NO.1现给定n个人的信息,输出第一面的名字。
Input
多组数据,输入文件第一行为一个整数T,代表测试数据数。 (T<50)接下来T个测试数据。 每个测试数据的的第一行为一个整数n(n<=100),接下来有n行,每行的格式如下: 名字 理科成绩 文科成绩 体育成绩 (数值越高代表成绩越好).名字长度不超过20,3个成绩的为正整型.
Output
对于每个测试数据,输出NO.1的名字,如果不存在第一名,就输出"NO NO.1".
Sample Input
3
2
lvhao 2 2 2
xiaoshua 1 1 1
2
lvhao 4 4 4
xiaoshua 4 4 3
3
lvhao 3 4 5
xiaoshua 1 3 1
pan 4 1 5Sample Output
lvhao
lvhao
NO NO.1
#include<stdio.h>
#include<math.h>
struct student
{
char name[8];
int score[4];
}stu[50];
int main()
{
int m,n,i,j,k,max,maxj[3];
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;i++)
{
scanf("%d",&m);
for(j=0;j<m;j++)
{
scanf("%s",stu[j].name);
for(k=0;k<3;k++)
{
scanf("%d",&stu[j].score[k]);
}
}
max=0;
for(k=0;k<3;k++)
{
for(j=0;j<m;j++)
{
if(stu[j].score[k]>max)
{
max=stu[j].score[k];
maxj[k]=j;
}
}
}
if(maxj[0]==maxj[1]&&maxj[1]==maxj[2]) printf("%s\n",stu[maxj[0]].name);
else printf("NO NO.1\n");
}
}
return 0;
} 展开
2个回答
展开全部
变量m表示什么?
还有最好在每个scanf()语句前加printf()语句提示用户要输入什么内容,因为你这代码的 scanf()语句太多了而且还是连续在一起的。这样会提高程序的可读性
还有程序头文件上面的内容干嘛的?!
while(scanf("%d",&n)!=EOF)判断输入的内容不为回车键?
还有最好在每个scanf()语句前加printf()语句提示用户要输入什么内容,因为你这代码的 scanf()语句太多了而且还是连续在一起的。这样会提高程序的可读性
还有程序头文件上面的内容干嘛的?!
while(scanf("%d",&n)!=EOF)判断输入的内容不为回车键?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询