「已注销」 2022-11-28 00:06 采纳率: 80%
浏览 34
已结题

结构体语言c语言程序问题输入

用结构体解决下列问题:从键盘输入n个学生的信息,每个学生信息包括学号、姓名、3门课的成绩,然后计算每个学生的总分,求出前两名总分最高的学生,并输出学生的信息。
输入
只有一组数据,共n+1行
其中第一行是一个正整数n(1≤n≤100),表示要输入的学生人数。
第2--n+1 行 表示输入n个学生信息,分别是:学号(12位数字),姓名(英文名,长度不超过20个字符),3门课的成绩(大于等于0的整数)。
输出
有两行,输出总分最高的学生的信息,包括:学号,姓名,三门课成绩,总成绩,一个空格隔开。如输出样例所示。
难度
较难
输入示例
4
202008065201 zhangsan 88 80 99
202008065202 lisi 90 80 99
202008065203 wangwu 66 50 30
202008065204 wangwu 90 100 100
输出示例
202008065204 wangwu 90 100 100 290
202008065202 lisi 90 80 99 269

  • 写回答

2条回答 默认 最新

  • hello_world&& 2022-11-28 11:36
    关注
    
    #include<stdio.h>
    struct student{
        char num[30];
        char name[20];
        int score[3];
        int sum;
    };
    void sort(int n,struct student stu[])
    {
        struct student t;
        int i,j;
        for(i=0;i<n-1;i++)//n个数的数列总共扫描n-1次
        {
            for(j=0;j<n-i-1;j++)//每一趟扫描到stu[n-i-2]与stu[n-i-1]比较为止结束
            {
                if(stu[j].sum<stu[j+1].sum)//后一位数比前一位数大的话,就交换两个数的位置(降序)
                {
                   t=stu[j+1];
                   stu[j+1]=stu[j];
                   stu[j]=t;
                }
            }
        }
    }
    int main()
    {
        int i,n;
        struct student stu[100];
        scanf("%d",&n);
         for(i=0;i<n;i++)
        {
            scanf("%s %s %d %d %d",stu[i].num,stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);
            stu[i].sum=stu[i].score[0]+stu[i].score[1]+stu[i].score[2];
        }
        sort(n,stu);
        printf("%s %s %d %d %d %d",stu[0].num,stu[0].name,stu[0].score[0],stu[0].score[1],stu[0].score[2],stu[0].sum);
        printf("\n");
        printf("%s %s %d %d %d %d",stu[1].num,stu[1].name,stu[1].score[0],stu[1].score[1],stu[1].score[2],stu[1].sum);
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月28日
  • 已采纳回答 11月28日
  • 创建了问题 11月28日

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集