ZZULIOJ:1180: 成绩统计(结构体专题)

1180: 成绩统计(结构体专题)

时间限制: 1 Sec  内存限制: 128 MB
提交: 10640  解决: 5056
[状态] [讨论版] [提交] [命题人:admin] 题目描述

从键盘输入若干个学生的信息,每个学生信息包括学号、姓名、3门课的成绩,计算每个学生的总分,输出总分最高的学生的信息。

输入

首先输入一个整数n(1<=n<=100),表示学生人数,然后输入n行,每行包含一个学生的信息:学号(12位)、姓名(不含空格且不超过20位),以及三个整数,表示语文、数学、英语三门课成绩,数据之间用空格隔开。

输出

输出总成绩最高的学生的学号、姓名、及三门课成绩,用空格隔开。若有多个最高分,只输出第一个。

样例输入 Copy
3
541207010188 Zhangling 89 78 95
541207010189 Wangli 85 87 99
541207010190 Fangfang 85 68 76
样例输出 Copy
541207010189 Wangli 85 87 99
来源/分类   代码:
#include<stdio.h>
struct students
{
    char stnum[13];//学号
    char stname[21];//名字(都要留一位储存空字符)
    int c;
    int m;
    int e;//注意声明类型
};
int main()
{
    int n;
    scanf("%d",&n);
    getchar();//吃掉回车
    struct students all[100];
    int s[100];
    int max=0,t=0;//有可能所有成绩都为零,下面的判断不进行,先给t赋值0
    for(int i=0;i<n;i++)
    {
        scanf("%s %s %d %d %d",all[i].stnum,all[i].stname,&all[i].c,&all[i].m,&all[i].e);
        s[i]=all[i].c+all[i].m+all[i].e;//结构体的应用
        if(max<s[i])
        {
            max=s[i];//最正常的比较
            t=i;
        }
    }
    printf("%s %s %d %d %d",all[t].stnum,all[t].stname,all[t].c,all[t].m,all[t].e);
    return 0;
}

上一篇:模拟85 考试总结


下一篇:anaconda手动安装包出现的某些问题