在C语言中,要根据总成绩从高到低输出学生信息,可以采用结构体和排序算法来实现。首先定义一个结构体,存储学生姓名和成绩:
struct student {
char name[10];
float grade;
};
接下来编写排序函数,这里采用冒泡排序方法:
void sort(struct student *stu, int n) {
int i,j;
struct student s;
for (i = 0; i < n-1; i++) {
for(j = i+1; j < n; j++) {
if (stu[i].grade < stu[j].grade) {
s = stu[i];
stu[i] = stu[j];
stu[j] = s;
}
}
}
}
定义一个打印函数,用于输出排序后的学生信息:
void print(struct student *stu, int n) {
int i;
printf("name\tgrade\n");
for (i = 0; i < n; i++) {
printf("%s\t%.2f\n", stu[i].name, stu[i].grade);
}
}
在主函数中,初始化一个学生数组,调用排序和打印函数:
void main() {
void sort(struct student *stu, int n);
void print(struct student *stu, int n);
//数据来源.
struct student stu[5] = {"zx1",13, "zx2",14, "zx3",18, "zx4",19, "zx5",15};
sort(stu, 5);
print(stu, 5);
}
运行这段代码,就能看到按照成绩从高到低排序的学生信息。这里示例中仅使用了5个学生,实际应用中可以根据需要调整学生数组的大小。
温馨提示:答案为网友推荐,仅供参考