要求先输入正整数N,然后输入N个类型为结构stud的数组元素,计算每个学生的总分,输出每个学生的学号、姓名、三门课的成绩及

要求先输入正整数N,然后输入N个类型为结构stud的数组元素,计算每个学生的总分,输出每个学生的学号、姓名、三门课的成绩及

img

img

你题目的解答代码如下:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>

typedef struct student{
    int num;
    char name[10];
    int score[3];
    int sum;
} stu;

int main()
{
    int i,j,k,n,max=0,sum=0;
    stu a[100];
    scanf("%d", &n);
    for(i=0;i<n;i++)
    {
        scanf("%d%s",&a[i].num,a[i].name);
        for (j=0; j<3; ++j)
            scanf("%d",&a[i].score[j]);
    }
    for(i=0;i<n;i++)
    {
        a[i].sum = 0;
        for (j=0; j<3; ++j)
        {
            a[i].sum += a[i].score[j];
        }
        sum += a[i].sum;
        if (a[max].sum<a[i].sum)
            max=i;
    }

    for(i=0;i<n;i++)
    {
        printf("%d %s %d %d %d %d\n",a[i].num,a[i].name,a[i].score[0],a[i].score[1],a[i].score[2],a[i].sum);
    }
    printf("总平均分:%.2f\n",1.0*sum/n);
    printf("总分最高同学:\n");
    printf("%d %s %d %d %d %d\n",a[max].num,a[max].name,a[max].score[0],a[max].score[1],a[max].score[2],a[max].sum);

    return 0;
}

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img