自学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“);
}
>> 本文固定链接: http://www.vcgood.com/archives/2846
你可以在 ssanf函数后面加上一句getchar()用来接收输入时的回车
另外
自己定义的函数最好在主函数中声明一下
谢谢,已经可以了。不过输入选择后需要再按一下回车有点麻烦。呵呵。
另外请问一下,自己定义的函数应如何在主函数中声明呢?
main(){
int f(int);//函数声明
…..}
int f(int x){
..}