【PTA】【C语言】寻找最高分-创新互联
给定n(n⩾1)个学生的学号、姓名和3门课的考试成绩。编写程序找出总分最高的学生,并输出其学号、姓名和总分。如果有多个相同的最高分,则输出所有最高分学生的信息。
要求:
存储学生信息及考试成绩的变量用如下结构类型来定义。
struct Student
{
char num[11]; //学号,最多10个字符
char name[11]; //姓名, 最多10个字符
int s1,s2,s3; //三门课的考试成绩
int total; //总成绩
} ;
typedef struct Student Student; //声明了一个结构类型Student类型
输入格式:输入在一行中给出非负整数n(n⩾1)。随后n行,每行给出一个学生的信息,格式为学号 学号 姓名 成绩1 成绩2 成绩3
,中间以空格分隔。
要求:学号
、姓名
中不包括空白字符(空格、tab符)和空字符串。
在一行中输出总分最高学生的姓名、学号和总分,间隔一个空格。题目保证这样的学生是唯一的。
输入样例:5
2109001 HuangJie 78 83 79
2109002 Liuhaipeng 79 80 77
2109003 Wangqiang 87 86 76
2109004 Liangfeng 92 89 79
2109005 Chengmeng 80 82 75
输出样例:在这里给出相应的输出。例如:
2109004 Liangfeng 260
代码如下: (需注意题目要求:如果有多个相同的最高分,则输出所有最高分学生的信息)
#include#includestruct Student
{
char num[11]; //学号,最多10个字符
char name[11]; //姓名, 最多10个字符
int s1,s2,s3; //三门课的考试成绩
int total; //总成绩
} ;
typedef struct Student Student; //声明了一个结构类型Student类型
int main()
{
int n, i, j, k = 0;
int max = 0;
scanf("%d", &n);
struct Student s[n];
for (i = 0; i< n; i++)
{
scanf("%s %s %d %d %d", s[i].num, s[i].name, &s[i].s1, &s[i].s2, &s[i].s3);
s[i].total = s[i].s1 + s[i].s2 + s[i].s3;
if (s[i].total >max)
{
max = s[i].total;
k = i;
}
}
printf("%s %s %d\n", s[k].num, s[k].name, s[k].total);
for (i = k + 1; i< n; i++)
{
if (s[i].total == max)
printf("%s %s %d\n", s[i].num, s[i].name, s[i].total);
}
return 0;
}
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
新闻标题:【PTA】【C语言】寻找最高分-创新互联
分享链接:http://scyanting.com/article/cosheg.html