首页 > 用户发贴区 > 编程问题提问区 > 『求助』出现死循环。
2008
10-18

『求助』出现死循环。

自学C不久,请问为什么我这段代码,在Main的菜单中。要是输入了非数字就会出现死循环呢?请问我该如何解决?


 


#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<math.h>


main()
{
    int a ;
    printf(“\n 宠物小精灵计算器DOS版 1.0\n“);
    printf(” 制作:“);
   
    /*
          ASCII[LixnKei]
          76,105,120,110,75,101,105
          */

   
    printf(“%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c“,208,161,186,252,32,163,173,32,76,105,120,110,75,101,105);
    printf(“\n ————————–\n\n“);
   
    while(a!=5)
    {
       
        //功能菜单
        printf(” 1、HP 计数器\n“);
        printf(“ 2、捕捉率计算器\n“);
        printf(” 3、觉醒力量计算器\n“);
        printf(“ 4、个体值计算\n“);
        printf(” 5、退出\n\n“);
        printf(” 请输入所需功能:“);
       
        //判断选择那项功能
        scanf(“%d“,&a);
       
        if(a==1)
        {
            jshp();
        }
        else if(a==2)
        {
            bzl();
        }
        else if(a==3)
        {
            xjzl();
        }
        else if(a==4)
        {
            gtz();
        }
        else if(a==5)printf(“\n\n 欢迎下次再来!“);
        else printf(” \n* 选择有误,请重新输入 *\n\n“);
    }
   
    //按下回车结束程序
    getch();
}


//======================================================
//HP 计算器函数

jshp()
{


    printf(“\n *******精灵HP计数器*******\n\n“);


}


 


//======================================================
// 捕捉率计算器函数

bzl()
{


    printf(“\n *******精灵捕捉率计算器*******\n\n“);


}



//======================================================   
//觉醒力量计算器函数

xjzl()
{


    printf(“\n ********觉醒力量计算器********\n\n“);


}



//======================================================
//个体值函数

gtz()
{
   
    printf(“\n *******个体值计算器*******\n\n“);


}


『求助』出现死循环。》有 3 条评论

  1. Perfect 说:

    你可以在  ssanf函数后面加上一句getchar()用来接收输入时的回车

    另外

    自己定义的函数最好在主函数中声明一下 

     

  2. LixnKei 说:

    谢谢,已经可以了。不过输入选择后需要再按一下回车有点麻烦。呵呵。

    另外请问一下,自己定义的函数应如何在主函数中声明呢?

  3. Perfect 说:

    main(){

    int f(int);//函数声明

    …..}

    int f(int x){

    ..}

     

留下一个回复