c++程序题 求大神帮做一下

给定N个学生的基本信息,包括学号(由5个数字组成的字符串)、姓名(长度小于10的不包含空白字符的非空字符串)和3门课程的成绩([0,100]区间内的整数),要求输出总分最... 给定N个学生的基本信息,包括学号(由5个数字组成的字符串)、姓名(长度小于10的不包含空白字符的非空字符串)和3门课程的成绩([0,100]区间内的整数),要求输出总分最高学生的姓名、学号和总分。

输入格式:

输入在一行中给出正整数N(\le≤10)。随后N行,每行给出一位学生的信息,格式为“学号 姓名 成绩1 成绩2 成绩3”,中间以空格分隔。

输出格式:

在一行中输出总分最高学生的姓名、学号和总分,间隔一个空格。题目保证这样的学生是唯一的。

输入样例:

5
00001 huanglan 78 83 75
00002 wanghai 76 80 77
00003 shenqiang 87 83 76
10001 zhangfeng 92 88 78
21987 zhangmeng 80 82 75
输出样例:

zhangfeng 10001 258
展开
 我来答
寻秦记记
2016-09-14 · TA获得超过1039个赞
知道小有建树答主
回答量:1098
采纳率:100%
帮助的人:443万
展开全部
#include <stdio.h>

struct _student
{
char id[6];
char name[10];
int class1;
int class2;
int class3;

};

int main(int argc, char const *argv[])
{
int n;
int i = 0;
scanf("%d",&n);
struct _student stu[n];
int class_res = 0;
int max_flag = 0;
for (i = 0; i < n; ++i)
{
scanf("%s %s %d %d %d",stu[i].id,stu[i].name,&stu[i].class1,&stu[i].class2,&stu[i].class3);
}
class_res = stu[0].class1 + stu[0].class2 + stu[0].class3;

for (i = 0; i < n; ++i)
{
if(class_res < stu[i].class1 + stu[i].class2 + stu[i].class3){
class_res = stu[i].class1 + stu[i].class2 + stu[i].class3;
max_flag = i;
}
}
printf("%s %s %d\n",stu[max_flag].name,stu[max_flag].id,class_res);
return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式