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;
}
int main() {
int n;
printf("请输入学生人数: ");
scanf("%d", &n);
Student* students = (Student*)malloc(n * sizeof(Student));
input_students(students, n);
sort_students(students, n);
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);
int failed_count = count_failed_students(students, n);
printf("\n平均成绩: %.2f\n", avg_score);
printf("不及格人数: %d\n", failed_count);
free(students);
return 0;
include
include
typedef struct { int id; float score; } Student;
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; }
int main() { int n; printf("请输入学生人数: "); scanf("%d", &n);
}