炽翎867 2022-11-25 14:36 采纳率: 100%
浏览 337
已结题

有5个学生每个学生的数据包括学号、姓名和成绩

有5个学生,每个学生的数据包括学号姓名和成绩。要求分别用三个函数实现以下功能。1.用 input函数输入所有学生数据。2.用sort函数将学生数据按照成绩,由高到低排序后输出。3.用max函数找到成绩最高学生并输出其信息。

  • 写回答

5条回答 默认 最新

  • hello_world&& 2022-11-25 14:48
    关注

    先定义一个结构体类型student,包含成员学号num,姓名name,成绩score。在排序部分可使用冒泡排序,最大值部分可用“擂台法”找到最大值,也可用排序后的结果来找最大值,本代码采用第一种方法。在main函数中定义一个结构体数组,用数组名作参数来分别调用上述函数。

    #include<stdio.h>
    struct student{
        int num;
        char name[20];
        float score;
    };
    void input(int n,struct student stu[])
    {
        int i;
        for(i=0;i<n;i++)
        {
            printf("请输入第%d个同学的学号,姓名,成绩\n",i+1);
            scanf("%d %s %f",&stu[i].num,stu[i].name,&stu[i].score);
        }
    }
    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].score<stu[j+1].score)//后一位数比前一位数大的话,就交换两个数的位置(降序)
                {
                   t=stu[j+1];
                   stu[j+1]=stu[j];
                   stu[j]=t;
                }
            }
        }
        printf("成绩由高到低为:");
        for(i=0;i<n;i++)
          printf("%.2f ",stu[i].score);
       printf("\n");
    }
    void max(int n,struct student stu[])
    {
        struct student max1;
        max1=stu[0];
        int i;
        for(i=0;i<n;i++)
        {
            if(stu[i].score>max1.score)
                max1=stu[i];
        }
        printf("最高分学生信息: ");
        printf(" 学号:%d 姓名:%s 成绩:%.2f",max1.num,max1.name,max1.score);
    }
    int main()
    {
        struct student stu[5];
        input(5,stu);
        sort(5,stu);
        max(5,stu);
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(4条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月25日
  • 已采纳回答 11月25日
  • 专家修改了标签 11月25日
  • 修改了问题 11月25日
  • 展开全部

悬赏问题

  • ¥15 flink cdc无法实时同步mysql数据
  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决