解题思路:

注意事项:

参考代码

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

// 定义学生结构体
typedef struct student
{
    char number[50];
    char name[50];
    int score[3];
} stud;

int main() {
    int N;
    scanf("%d", &N); // 输入学生数量 N

    stud stu[100]; // 声明一个结构体数组,用于存储学生信息,数组大小为100

    int totalscore[3] = { 0 }; // 用于存储三门课程的总分,初始值都为0

    stud higheststudent; // 用于存储最高分的学生
    int highscore = 0; // 用于存储最高分

    // 输入学生信息并计算总分
    for (int i = 0; i < N; i++)
    {
        // 输入学生的学号、姓名以及三门课程的成绩
        scanf("%s %s %d %d %d", stu[i].number, stu[i].name,
            &stu[i].score[0], &stu[i].score[1], &stu[i].score[2]);

        // 计算各门课程的总分
        for (int j = 0; j < 3; j++)
        {
            totalscore[j] += stu[i].score[j];
        }

        // 检查是否为最高分
        int x = stu[i].score[0] + stu[i].score[1] + stu[i].score[2];
        if (x > highscore)
        {
            highscore = x;
            higheststudent = stu[i];
        }
    }

    int ave[3];
    // 计算各门课程的平均成绩
    for (int i = 0; i < 3; i++)
    {
        ave[i] = (int)totalscore[i] / N; // 计算平均成绩,强制类型转换为整数
    }

    // 输出各门课的平均成绩
    printf("%d %d %d\n", ave[0], ave[1], ave[2]);

    // 输出最高分的学生信息
    printf("%s %s %d %d %d", higheststudent.number, higheststudent.name,
        higheststudent.score[0], higheststudent.score[1], higheststudent.score[2]);

    return 0;
}
点赞(0)
 

0.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论