首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

程序无法完全运行,求指教解决思路

2013-11-25 
程序无法完全运行,求指教程序可以进去但每运行一个功能都会退出是我的主函数出问题了吗void main(){char a

程序无法完全运行,求指教
程序可以进去但每运行一个功能都会退出
是我的主函数出问题了吗

void main()
{
    char a;
    int i,n,m;
    pelem e,pdata;
    sqlist l;
    sqlist *L=&l;
    char key[10];
    InitList_sq(L);
    do
    {
    system("cls");
    printf("\t\t============ 请按提示输入指令 ==============\n");
    printf("\t\t------------1向线性表插入元素---------------\n");
    printf("\t\t------------2删除线性表元素-----------------\n");
    printf("\t\t------------3显示所有元素-------------------\n");
    printf("\t\t------------4按学号查找元素-----------------\n");
    printf("\t\t------------5按关键字查找元素---------------\n");
    printf("\t\t------------0退出系统-----------------------\n");
    a=getchar();
    switch(a)
    {
        case'1':ListAdd_sq(L);
        break;
        case'2':
        {
            printf("请输入要删除的元素");
            scanf("%d",&n);
            ListDelete_sq(L,n,e);
        }
        break;
        case'3':ListAll(L);
        break;
        case'4':
        {
            printf("\n要取出节点的序号:");
        scanf("%d",&m);
            pdata=ListFindByNum(L,m);
            if(pdata)
           {
          printf("第%d个节点是:%s %s %d\n",m,pdata->number,pdata->name,pdata->age);
          getch();
          return;
               }
        }
        break;
        case'5':
        {
            printf("\n要查找的关键字:");
        scanf("%s",&key);
            i=ListFindByNumber(L,key);
        pdata = ListFindByNum(L,i);
        if(pdata)
          {
         printf("第%d个元素是:%s,%s,%d\n",i,pdata->number,pdata->name,pdata->age);
         getch();
         return;
          }
        }
        break;
        case'9':printf("length:%d",ListLength_sq(L));
        break;
        case'0':exit(0);
        default:return;
        break;
    }
    }while(1);
}

[解决办法]
a = getchar();

改为:

clearerr( stdin );
while( ( a = getchar() ) == '\n' );

热点排行