求解通讯录有关问题.
求解通讯录问题.....
菜单式做出来了,但是一到调用函数的时候,程序就意外终止了,求高手指点指点,谢谢了
------解决方案--------------------
崩溃时调试,查看调用堆栈
或设断点
------解决方案--------------------
do
{
scanf("%d",&sel);
switch(sel)
{
case 1:sort1(person,3);break;
case 2:sort2(person,3);break;
case 0:(exit);
}
}while(sel!=0);
------解决方案--------------------
下断点调一下
定位问题才好分析啊
- 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);
------解决方案--------------------
下断点调一下
定位问题才好分析啊