|
发表于 2024-1-11 14:00:40
|
显示全部楼层
#include
// 定义学生结构体
struct Student {
int id;
char name[20];
char address[100];
float score;
};
// 从键盘输入学生信息
void inputStudents(struct Student students[], int n) {
printf("请输入%d个学生的信息:\n", n);
for (int i = 0; i < n; i++) {
printf("请输入第%d个学生的学号:", i+1);
scanf("%d", &students.id);
printf("请输入第%d个学生的姓名:", i+1);
scanf("%s", students.name);
printf("请输入第%d个学生的家庭住址:", i+1);
scanf("%s", students.address);
printf("请输入第%d个学生的成绩:", i+1);
scanf("%f", &students.score);
}
}
// 按照成绩从小到大排序
void sortStudents(struct Student students[], int n) {
struct Student temp;
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) {
temp = students[j];
students[j] = students[j+1];
students[j+1] = temp;
}
}
}
}
// 输出所有学生的信息
void outputStudents(struct Student students[], int n) {
printf("所有学生的信息如下:\n");
for (int i = 0; i < n; i++) {
printf("学号:%d, 姓名:%s, 家庭住址:%s, 成绩:%.2f\n",
students.id, students.name, students.address, students.score);
}
}
// 统计成绩优秀和不及格的学生人数
void countScore(struct Student students[], int n) {
int excellentCount = 0;
int failCount = 0;
for (int i = 0; i < n; i++) {
if (students.score >= 90) {
excellentCount++;
} else if (students.score < 60) {
failCount++;
}
}
printf("成绩优秀(>=90)的学生人数:%d\n", excellentCount);
printf("成绩不及格的学生人数:%d\n", failCount);
}
int main() {
int n;
printf("请输入学生人数:");
scanf("%d", &n);
struct Student students[n];
inputStudents(students, n);
sortStudents(students, n);
outputStudents(students, n);
countScore(students, n);
return 0;
}
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|