题目
输入5个学生的信息,然后输出时按照学生名字的首字母进行排序
#include<stdio.h>
#include<string.h>
struct Student //定义结构体
{
char name[20];
int num;
int age;
}tongxue[5],*p=tongxue;
int main() //主函数
{
void input(struct Student a[]); //输入函数的声明
void sort(struct Student a[]); //排序函数的声明
void output(struct Student a[]); //输出函数的声明
printf("请输入学生的信息\n");
input(p); //函数的调用
sort(p);
output(p);
return 0;
}
void input(struct Student a[]) //输出函数的定义
{
int i;
for(i=0;i<5;i++)
scanf("%s %d %d",a[i].name,&a[i].num,&a[i].age);
}
void sort(struct Student a[]) //排序函数的定义
{
int i,j,min;
struct Student temp;
for(i=0;i<5;i++) //利用选择排序的方法进行排序
{
min=i;
for(j=i=1;j<5;j++)
if(strcmp((a[min].name),(a[j].name))>0)
{
min=j;
temp=a[i];
a[i]=a[min];
a[min]=temp;
}
}
}
void output(struct Student a[]) //输出函数的定义
{
int i;
struct Student *b;
printf("姓名 学号 年龄/n");
for(i=0,b=a;i<10;i++,p++)
printf("%-8s %-10d %-5d\n",b->name,b->num,b->age);
}