读书人

求解通讯录有关问题.

发布时间: 2012-11-05 09:35:12 作者: rapoo

求解通讯录问题.....

C/C++ code
#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);}

菜单式做出来了,但是一到调用函数的时候,程序就意外终止了,求高手指点指点,谢谢了

[解决办法]
崩溃时调试,查看调用堆栈
或设断点
[解决办法]
do
{
scanf("%d",&sel);

switch(sel)
{
case 1:sort1(person,3);break;
case 2:sort2(person,3);break;
case 0:(exit);
}

}while(sel!=0);


[解决办法]
下断点调一下
定位问题才好分析啊

读书人网 >VC/MFC

热点推荐