You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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;
}
#include <stdio.h>
#include <stdlib.h>
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;
}
The text was updated successfully, but these errors were encountered: