QZHY-HTX / Data-Structure

泉州海洋职业学院信息工程学院2023-2024学年第二学期数据结构课程仓库
MIT License
6 stars 9 forks source link

陈思婕+2302580064 #51

Open 82kui opened 7 months ago

82kui commented 7 months ago

include

include

typedef struct {     int id;     float score; } Student;    //定义一个Student结构体,包含学号(id)和考试成绩(score)两个成员

void input_students(Student* students, int n) {     for (int i = 0; i < n; i++) {         printf("请输入第%d个学生的学号: ", i + 1);         scanf("%d", &students[i].id);         printf("请输入%d的考试成绩: ", students[i].id);         scanf("%f", &students[i].score);     } }

void sort_students(Student* students, int n) {     for (int i = 0; i < n - 1; i++) {         for (int j = 0; j < n - i - 1; j++) {             if (students[j].score < students[j + 1].score) {                 Student temp = students[j];                 students[j] = students[j + 1];                 students[j + 1] = temp;             }         }     } }

float calculate_avg_score(Student* students, int n) {     float total_score = 0.0;     for (int i = 0; i < n; i++) {         total_score += students[i].score;     }     return total_score / n; }

int count_failed_students(Student* students, int n) {     int failed_count = 0;     for (int i = 0; i < n; i++) {         if (students[i].score < 60.0) {             failed_count++;         }     }     return failed_count; }

//定义四个函数:input_students()用于输入学生信息, sort_students()用于对学生成绩排序, calculate_avg_score()用于计算平均成绩, count_failed_students()用于统计不及格人数。

int main() {     int n;     printf("请输入学生人数: "); //在main()函数中,首先输入学生人数n。     scanf("%d", &n);

    Student students = (Student)malloc(n * sizeof(Student));  //动态分配一个Student类型的数组students来存储学生信息

    input_students(students, n);//调用input_students()函数输入每个学生的学号和考试成绩。     sort_students(students, n);//调用sort_students()函数对学生成绩进行排序(使用冒泡排序算法)。

    printf("\n学号\t成绩\n");     for (int i = 0; i < n; i++) {         printf("%d\t%.2f\n", students[i].id, students[i].score);//输出学生的学号和成绩,按从高到低的顺序。     }

    float avg_score = calculate_avg_score(students, n);//调用calculate_avg_score()函数计算平均成绩,调用count_failed_students()函数统计不及格人数。     int failed_count = count_failed_students(students, n);

    printf("\n平均成绩: %.2f\n", avg_score);     printf("不及格人数: %d\n", failed_count);//输出平均成绩和不及格人数

    free(students);//释放动态分配的内存。     return 0; }