1、定义一个结构体,名字stu,成员1学号id(int) 成员2分数score(float);
2、定义一个结构体数组,长度4;
3、从屏幕上输入这4个学生的学号和分数,保存在数组中;
4、按照分数的降序,对数组进行排序。
示例代码:
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int id;
float score;
}stu;
//排序
void sort(stu p_stu[], int num) {
int i, j;
stu temp;
for (i = 0; i < num; i++) {
for (j = i + 1; j < num; j++)
{
if (p_stu[i].score < p_stu[j].score)
{
//交换两个值
temp = p_stu[i];
p_stu[i] = p_stu[j];
p_stu[j] = temp;
}
}
}
}
int main() {
int i;
const int num = 4;
stu Student[4];
printf("\t\t请输入学生的信息:\n");
for (i = 0; i < num; i++) {
printf("请输入第%d名学生的信息\n", i + 1);
scanf("%d %f", &Student[i].id, &Student[i].score);
}
printf("\t\t输出排序前的学生信息:\n");
for (i = 0; i < 4; i++) {
printf("第%d学生信息:%d %f\n", (i + 1), Student[i].id, Student[i].score);
}
sort(Student, num);
printf("\t\t输出排序后的学生信息:\n");
for (i = 0; i < 4; i++) {
printf("%d %f\n", Student[i].id, Student[i].score);
}
system("pause");
return 0;
}
运行结果;