总是卡在循环上,大家看看怎么可以把我的这个goto改为while,谢谢。
大家好,又给大家添麻烦了,今天又做了个习题,尽量作得比书上的要求高些,我增加了二个功能:一:当输入数字错误时,给出提示,重新输入;
二:当猜字结束后,可以询问是否重新开始。
我就卡在这第二条上了,我知道程序中用goto语句不好,可是试了不下百次,就是不能用while取代goto,请大家帮忙,在此谢过了。
声明:我为新手,所以代码健壮性和可移植性不是很高,技术含量也很低,代码也超过30行,我用的编译器是WIN-TC。如果对此有看法的朋友尽可不必回帖。谢谢支持。
再次谢谢大家,不怕找出错误,您找出的错误和不足之处,就是我前进莫大的动力与支持,请您畅所欲言,如果是对此程序有挖苦讽刺以及恶毒批评,我会更加感激您。谢谢。
另外,我对自定义函数已经明白,对指针还没学到,所以尽量请不要改成这两种模式的。
再次感谢。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
int a,b,c,n;
fh: printf("***********************************************************\n");
printf("您好,现在请您猜一个1000以内的整数。\n您有20次机会,每次您猜错了,系统会提\n示您猜得大了或者小了。祝您玩得愉快!\n");
printf("***********************************************************\n");
n=1;
srand(time(NULL));
b=rand()%1000+1;
do
{
printf("请您输入一个数字:");
scanf("\n%d",&a);
while(a<1||a>1000)
{
printf("对不起,您输入的数字不对,请重新输入:");
scanf("\n%d",&a);
}
if(a>b)
{
printf("对不起,您输入的数字过大,请重新输入。\n");
printf("**********************************************************\n");
}
if(a<b)
{
printf("对不起,您输入的数字太小,请重新输入。\n");
printf("**********************************************************\n");
}
n++;
if(n==21)break;
printf("这是您第%d次猜数!\n",n);
}
while(a!=b) ;
if(a==b)
printf("恭喜您,猜对了!\n");
if(n==21)
printf("您好,您的次数已到!\n");
printf("请问您还想继续玩吗?是请按1,按其它键退出!");
scanf("\n%d",&c);
if(c==1)
goto fh;
getch();
}