C语言:猜数问题!!

编写程序实现猜数游戏,程序首先生成一个1~10(包括1和10)的正整数,提示用户输入一个数对其进行猜测,如果用户输入的数大于要猜测的数,则提示"Toobig.\nTrya... 编写程序实现猜数游戏,程序首先生成一个1~10(包括1和10)的正整数,提示用户输入一个数对其进行猜测,如果用户输入的数大于要猜测的数,则提示"Too big.\nTry again:";如果用户输入的数小于要猜测的数,则提示"Too small.\n Try again:";相等则表示猜到了。同时,程序还需要统计猜测的次数,如果1次猜中该数,提示"Bingo!";如果3次以内(包括3次)猜中该数,则提 示"Lucky You!";如果超过3次但是在6(>3)次以内(包括第6次)猜到该数,则提示"Good Guess!";如果超过6次都没有猜到,则提示"Game Over",一次猜测结束。然后,提示用户是否还要再猜测一次"Do you wanna play again? If yes, press Y or y. Otherwise press N or n.",如果用户输入Y或者y,则表示要再猜一次;如果用户输入N或者n,则表示不猜了,退出程序。

注意:为了能够用系统进行评判,提交的程序需要把随机数生成部分替换为从标准输入(stdin)读取一个数(这个数相当于随机数);然后,后面继续读取用户输入的数。
展开
 我来答
penguinarbiter
2020-11-29 · TA获得超过186个赞
知道小有建树答主
回答量:183
采纳率:100%
帮助的人:49.5万
展开全部

左图:1-36行;右图:17-52行

#include <stdio.h>

int main()

{

    int tar, guess, times, again = 1;

    char ch;


    while (again == 1)

    {

        scanf("%d", &tar);

        times = 1;

        while (1)

        {

            scanf("%d", &guess);

            if (guess == tar)

            {

                if (times == 1)

                    printf("Bingo!\n");

                else if (times <= 3)

                    printf("Lucky You!\n");

                else

                    printf("Good Guess!\n");

                break;

            }

            

            if (times >= 6)

            {

                printf("Game Over.\n");

                break;

            }

            

            if (guess > tar)

                printf("Too big.\nTry again:");

            else

                printf("Too small.\nTry again:");

            times++;

        }

        

        again = 0;

        do

        {

            printf("Do you wanna play again? "

                "If yes, press Y or y. Otherwise press N or n.");

            scanf(" %c", &ch);

            if (ch == 'Y' || ch == 'y')

                again = 1;

            else if (ch == 'N' || ch == 'n')

                again = -1;

        } while (again == 0);

    }

    

    return 0;

}

部分测试

云南新华电脑学校
2020-11-28 · 百度认证:云南新华电脑职业培训学校官方账号
云南新华电脑学校
云南新华电脑学校是经云南省教育厅批准成立的省(部)级重点计算机专业学校,采用三元化管理模式,教学设备先进,师资雄厚学生毕业即就业,学院引进了电商企业入驻,创建心为电商创业园区,实现在校即创业
向TA提问
展开全部
您好,你的问题,我之前好像也遇到过,以下是我原来的解决思路和方法,希望能帮助到你,若有错误,还望见谅!展开全部
#include<stdio.h>
void main()
{
int i,j,A,B,n=0;
int a[4]={1,2,3,4},b[4];
do{
A=0;
B=0;
printf("please imput 4 numbers from 1 to 10:"); //我用的VC6.0,数据输入之间空格;
for(i=0;i<4;i++)
{
scanf("%d",&b[i]);
}
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
if(b[j]==a[i]) //等号==;
{
i!=j?B++:A++;
}
}
n++;
printf("%dA%dB\n",A,B);
}while(A<4);
printf("Congratulations!!!\n");
printf("You have guessed %d times in all\n",n);
printf("The answer is:");
for(i=0;i<4;i++)
{
printf("%d ",a[i]);
}
printf("\n");
}
你的循环有点,局部还有些错误,我这个可以了,不懂的在线HI非常感谢您的耐心观看,如有帮助请采纳,祝生活愉快!谢谢!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式