实验9-7 找出总分最高的学生(15 分)

实验9-7 找出总分最高的学生(15 分)

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

输入格式:

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

输出格式:

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

输入样例:

1
2
3
4
5
6
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

输出样例:

1
zhangfeng 10001 258
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include<stdio.h>
#include<string.h>
#include<math.h>
int main(){
int n;
scanf("%d",&n);
char s[n][5][100];
int i,j;
for(i=0;i<n;i++){
for(j=0;j<5;j++){
scanf("%s",s[i][j]);
}
}
int num;int k;int max=0;int index=0;
for(i=0;i<n;i++){
int sum=0;
for(j=2;j<5;j++){
num=strlen(s[i][j]);
for(k=0;s[i][j][k]!='\0';k++){
sum+=(s[i][j][k]-'0')*pow(10,num-1);
num--;
}

}
if(sum>max){
max=sum;
index=i;
}
}
printf("%s %s %d",s[index][1],s[index][0],max);
return 0;
}
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×