弱小阿呆 2024-10-13 20:40 采纳率: 88.9%
浏览 3
已结题

运行不了,想知道哪错了

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{

int i,n=1;
srand(time(0));
i=rand()%100;
while(n!=1)
{
     printf("输入你猜想的数\n");
     scanf("%d",&n);
     if(n>i)
        printf("有点大了\n");
     if(n<i)
        printf("有点小了\n");

}
printf("恭喜你答对了\n");
return 0;

}

  • 写回答

2条回答

  • 香格里辣 2024-10-13 20:41
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    您的代码基本上是正确的,应该能够正常运行。这是一个简单的猜数字游戏,计算机随机生成一个介于 0 到 99 之间的数,用户尝试猜测这个数是什么。根据用户的猜测,程序给出提示,直到用户猜对为止。

    但是,我发现了一个小问题。在您的代码中,变量 i 存储的是计算机随机生成的数,而 n 是用户猜测的数。在 while 循环中,您使用 n!=1 作为循环条件,这意味着只有当用户猜测的数字为 1 时循环才会停止。这不是您期望的行为,因为您想要的是当用户猜对随机数时停止循环。

    因此,您应该将循环条件改为 n != i,这样当用户猜测的数字与计算机生成的随机数相同时,循环就会停止。修改后的代码如下:

    #include<stdio.h>
    #include<stdlib.h>
    #include<time.h>
    
    int main()
    {
        int i, n;
        srand(time(0));
        i = rand() % 100;
        while (n != i) // 修改此处,将 1 改为 i
        {
            printf("输入你猜想的数\n");
            scanf("%d", &n);
            if (n > i)
                printf("有点大了\n");
            if (n < i)
                printf("有点小了\n");
        }
        printf("恭喜你答对了\n");
        return 0;
    }
    

    这样修改后,程序应该能够正常运行并按照预期工作。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月21日
  • 已采纳回答 10月13日
  • 创建了问题 10月13日

悬赏问题

  • ¥20 IDEA 下 lombok 不生效,找不到get
  • ¥15 sas无法加载传输模块
  • ¥15 ABAQUS模拟钢管混凝土往复荷载,滞回曲线卸载荷载却比加载荷载大是为什么
  • ¥15 IOS设置了charels得代理,但是显示无互联网连接,无法打开chls.pro/ssl下载证书
  • ¥40 一维度流体仿真软件前端如何开发
  • ¥500 DELPHI环境安卓定位实时发送及回调消息展示
  • ¥15 易视腾is-E5-ngh怎么刷机,求各位们分享一下吧
  • ¥15 Androidstudio的程序,求各位帮帮我
  • ¥15 岩石声发射矩张量反演软件
  • ¥15 用Python完成一个任务