结构体实例三
在一个结构体数组中存入十个人的姓名及年龄,按照年纪升序排列并输出每个人的名字与年龄。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int at;
char mt[20];
struct student{
char name[20];
int age;
}stu[10];
int main()
{
int i,j;
printf("请输入你的姓名,年龄用空格隔开!\n");
for(i=0;i<10;i++){
scanf("%s",stu[i].name);
scanf("%d",&stu[i].age);
}
for(i=0;i<9;i++){
for(j=0;j<9-i;j++){
if(stu[j].age>stu[j+1].age){
at=stu[j].age;
stu[j].age=stu[j+1].age;
stu[j+1].age=at;
strcpy(mt,stu[j].name);
strcpy(stu[j].name,stu[j+1].name);
strcpy(stu[j+1].name,mt);
/*mt=stu[j].name;
stu[j].name=stu[j+1].name;/*
stu[j+1].name=mt;*/
}
}
}
putchar('\n');
printf("姓名 年龄\n");
for(i=0;i<10;i++){
printf("%s %3d",stu[i].name,stu[i].age);
putchar('\n');
}
return 0;
}