学生结构体:用结构体来描述学生(学号、姓名、语文成绩、数学成绩、英语成绩、总分、平均分),现在要对30个学生的信息进行处理,录入30名学生的基本信息并计算总分和平均分,按照总分由高到低排序打印信息。

学生结构体:用结构体来描述学生(学号、姓名、语文成绩、数学成绩、英语成绩、总分、平均分),现在要对30个学生的信息进行处理,录入30名学生的基本信息并计算总分和平均分,按照总分由高到低排序打印信息(格式:学号-姓名-总分-平均分)。

#include <stdio.h>
#define N 30

typedef struct {
    int num;
    char name[20];
    float chinese;
    float math;
    float english;
    float sum;
    float avg;
} Student;

void main() {
    Student s[N], t;
    int i, j;
    /* 信息录入 */
    for (i = 0; i < N; i++) {
        scanf("%d%s%f%f%f", &s[i].num, &s[i].name, &s[i].chinese, &s[i].math, &s[i].english);
        s[i].sum = s[i].chinese + s[i].math + s[i].english;
        s[i].avg = s[i].sum / 3;
    }
    /* 总分排序 */
    for (i = 0; i < N - 1; i++)
        for (j = 0; j < N - 1 - i; j++)
            if (s[j].sum < s[j + 1].sum) {
                t = s[j];
                s[j] = s[j + 1];
                s[j + 1] = t;
            }
    /* 打印信息 */
    for (i = 0; i < N; i++) {
        printf("%d-%s-%.2f-%.2f\n", s[i].num, s[i].name, s[i].sum, s[i].avg);
    }
}
发布了139 篇原创文章 · 获赞 4 · 访问量 93万+

猜你喜欢

转载自blog.csdn.net/qq_38490457/article/details/104808325