求解通讯录问题.....
#include<stdio.h>#include<string.h>#include<stdlib.h>struct stud_type{ char name[20]; int num;}person[3];void sort1(struct stud_type person[],int n);void sort2(struct stud_type person[],int n);void main(){ int i,sel; printf("请输入3个学生的姓名和学号\n"); for(i=0;i<3;i++) scanf("%s%d",person[i].name,&person[i].num); printf("1..........按姓名排序\n"); printf("2..........按学号排序\n"); printf("0..........退出\n"); scanf("%d",&sel); do { switch(sel) { case 1:sort1(person,3);break; case 2:sort2(person,3);break; case 0:(exit); } }while(sel!=0); }void sort1(struct stud_type person[],int n){ int i,j; char tmp[15]; for (i=0;i<3;i++) { for (j=0;j<3-i-1;j++) { if (strcmp(person[j].name,person[j+1].name)>0) { strcpy(tmp,person[j].name); strcpy(person[j].name,person[j+1].name); strcpy(person[j+1].name,tmp); } } } for(i=0;i<n;i++) printf("%s%18f\n",person[i].name,person[i].num);}void sort2(struct stud_type person[],int n){ int i,j,k; struct stud_type t; for(i=0;i<n-1;i++) { k=i; for(j=i+1;j<n;j++) if(person[k].num<person[j].num) k=j; if(k!=i) { t=person[i]; person[i]=person[k]; person[k]=t; } } for(i=0;i<3;i++) printf("%s%18f\n",person[i].name,person[i].num);}