输入学号,名字,年龄进行排序。(可控人数)(结构体)利用年龄进行排序。
#include <stdio.h>
#include <math.h>
#include <string.h>
#define N 5
typedef struct student
{
char num[10];
char name[20];
int age;
}stu;
void swap_student(stu *a, stu *b)
{
stu tmp;
tmp = *a;
*a = *b;
*b = tmp;
}
void sort_soap(struct student list[], int len)
{
int i, j;
for (j = 0; j < len-1; j++)
{
for (i = 0; i < len-j-1; i++)
{
if (list[i].age > list[i+1].age)
{
//交换相邻的两个数
swap_student(&list[i], &list[i + 1]);
}
}
}
}
void main(void)
{
//初始化数据
int i;
int x;
stu list[128];
printf("输入想要进行排序的人数:");
scanf("%d",&x);
for(i=0;i<x;i++)
scanf("%s%s%d",&list[i].num,&list[i].name,&list[i].age);
//排序
sort_soap(list, x);
//打印
for(i = 0; i < x; ++i) {
printf("%s %s %d\n",list[i].num,
list[i].name, list[i].age);
}
}