题目描述:定义存放一个学生信息的结构体类型,学生信息包括:姓名,学号,性别,院系,要求在随意输入5个学生的相关信息后,按照学号从小到大顺序输出这些学生的信息。
程序:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct student
{
char name[10];
char num[15];
char sex;
char system[10];
};
int main()
{
struct student stu[5],tem;
int i,j;
for(i=0; i<5; i++)
{
scanf("%s %s %c %s",stu[i].name,stu[i].num,&stu[i].sex,stu[i].system);
}
for(j=0;j<5;j++)
for(i=0; i<5-j-1; i++)
{
if(strcmp(stu[i].num,stu[i+1].num)>0)
{
tem=stu[i];
stu[i]=stu[i+1];
stu[i+1]=tem;
}
}
for(i=0;i<5;i++)
{
printf("%s %s %c %s\n",stu[i].name,stu[i].num,stu[i].sex,stu[i].system);
}
return 0;
}
结果:
注意:按学号排列两重循环,以及比较几次十分重要。