#include <stdio.h>
#include <string.h>
#define N 5
struct Student
{
char name[20];
char num[10];
//这里学号较长,必须用字符串表示
char gender;
char department[20];
};
int main()
{
int i,j;
//struct Student *p;
struct Student s[N];
struct Student temp;
//p=s;
for(i=0;i<N;++i)
{
scanf("%s %s %c %s",s[i].name,s[i].num,&s[i].gender,s[i].department);
}
for(i=0;i<N-1;++i)
{
for(j=0;j<N-i-1;++j)
{
if(strcmp(s[j].num,s[j+1].num)>0)
{
temp=s[j];
s[j]=s[j+1];
s[j+1]=temp;
/* p+j=p+j^p+j+1;
p+j+1=p+j^p+j+1;
p+j=p+j^s+j+1;*/
}
}
}
for(i=0;i<N;++i)
{
printf("%s %s %c %s\n",s[i].name,s[i].num,s[i].gender,s[i].department);
}
return 0;
}
//本来想用指针和位运算实现交换,但是没成功