我的程序生成的数字为999999999999999999999999999999999999。我如何使该程序生成1到100的数字。我如何告诉用户他们还剩下多少次尝试?

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{

int loopcount = 0;

int y = rand()%10;

int a;

printf("You have 8 chances to guess the right number. Enter your first number.");

while ((loopcount < 9) &&(y>0) &&(y<100))
    {
    printf("enter a number.");
    scanf("%d", &a);
    if (a == y){
        printf(" you have guessed the correct number.");
        loopcount = loopcount + 9;
        break;
        }
    else if (a < y){
        printf("the number is less than");
        loopcount = loopcount + 1;
        continue;
    }
    else if (a > y){
    printf("the number is greater");
        loopcount = loopcount + 1;
        continue;
    }
    else{
        printf("nothing.");
        break;
    }

}

system("pause");


}

最佳答案

几点建议:


无需检查y > 0y < 100,这是真的
应用@MasterOfBinary的修复以模100为模并加1。
但是,如果要使结果严格小于100,则使模为99。
您的响应消息是向后的。如果a < y他们的猜测也是
小,不要太大。
最后的else子句无用,请使其上方的else if
普通else
不需要loopcount = loopcount + 9;语句,
break;会使您立即退出循环。
您可以将其他loopcount语句替换为增量
形式,++loopcount;loopcount += 1;
您的提示和响应字符串最后需要换行符(\n)。

10-08 08:20