题目
创建一个结构体数组,数组名为student,成员包含学号,姓名,成绩(数据类型自己设定)。写一个程序,要求可以循环的从终端输入学生信息,当输入一行"#"时表示完成输入。完成输入后自动打印出所输入的学生信息,打印结果按学生成绩从低到高打印。
代码:
#include<stdio.h>
#include<stdlib.h>
struct student
{
char name[50];
int id;
float score;
} stu[50];
int i = 0;
void paixu()
{
struct student stu1[50];
for (int k = 0; k < i - 1; k++)
{
for (int j = 0; j < i - 1 - k; j++)
{
if (stu[j].score > stu[j + 1].score)
{
stu1[j] = stu[j];
stu[j] = stu[j + 1];
stu[j + 1] = stu1[j];
}
}
}
}
int main(int argc, char const *argv[])
{
printf("学号\t姓名\t成绩\n");
while (1)
{
scanf(" %d %s %f", &stu[i].id, stu[i].name, &stu[i].score);
if (getchar() == '#')
{
break;
}
i++;
}
paixu();
for (int k = 0; k < i; k++)
{
printf("%d\t%s\t%.2f\n", stu[k].id, stu[k].name, stu[k].score);
}
return 0;