私信TA

用户名:1678463512

访问量:7289

签 名:

等  级
排  名 2703
经  验 2105
参赛次数 0
文章发表 20
年  龄 20
在职情况 待业
学  校 秋长中学
专  业

  自我简介:

解题思路:定义一个学生结构,以及一个学生结构数组,循环动态复制到结构数组中

注意事项:

参考代码:

#include <stdio.h>

#include <stdlib.h>

//学生结构

typedef struct _student{

    char id[50];       //学生的学号

    char name[50]; //学生的姓名

    double chinese;//学生的三科成绩

    double math;

    double english;

}Students;

int main()

{

    /*

    * 有N个学生,每个学生的数据包括学号、姓名、3门课的成绩,

    * 从键盘输入N个学生的数据,要求打印出3门课的总平均成绩,

    * 以及最高分的学生的数据(包括学号、姓名、3门课成绩)

    * 输入

    * 2

    * 1 blue 90 80 70

    * b clan 80 70 60

    * 输出

    * 85 75 65

    * 1 blue 90 80 70

    */

    int n,i,j,temps,number;

    double sum1 = 0,sum2 = 0,sum3 = 0;//用来存放某一科成绩的总和

    int temp[50];

    scanf("%d",&n);

    Students students[n];//结构数组

    for(i = 0;i < n;i++)//动态赋值

    {

        /*

        scanf("%d",&students[i].id);

        scanf("%s",&students[i].name);

        scanf("%lf",&students[i].chinese);

        scanf("%lf",&students[i].math);

        scanf("%lf",&students[i].english);

        */

        scanf("%s %s %lf %lf %lf",&students[i].id,&students[i].name,&students[i].chinese,&students[i].math,&students[i].english);

    }



    for(i = 0;i < n;i++)

    {//通过遍历结构数组计算各科的总和

        sum1 += students[i].chinese;

        sum2 += students[i].math;

        sum3 += students[i].english;

        number = students[i].chinese + students[i].math + students[i].english;//存放某个学生三科成绩总和,并且存到整型数组中

        temp[i] = number;

        number = 0;

    }

    sum1 /= n;//计算各科的平均分

    sum2 /= n;

    sum3 /= n;

    printf("%.0lf %.0lf %.0lf\n",sum1,sum2,sum3);

    for(i = 0;i < n-1;i++)//冒泡排序算法,排序完后最大的总分在第一个元素

        for(j = 0;j < n - i - 1;j++)

        {

            if(temp[j] < temp[j+1])

            {

                temps = temp[j];

                temp[j] = temp[j + 1];

                temp[j + 1] = temps;

            }


        }

    for(i = 0;i < n;i++)//遍历结构数组查找哪个学生的总分最高

    {

        if(temp[0] == students[i].chinese + students[i].math + students[i].english)

        {

           printf("%s %s %.0lf %.0lf %.0lf\n",students[i].id,students[i].name,students[i].chinese,students[i].math,students[i].english);

        }

    }











    return 0;

}


 

0.0分

0 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区