略略略123456 2021-12-01 22:42 采纳率: 50%
浏览 35
已结题

设计一个猜数游戏,运行过程中的区间总是出错

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
time_t ti;
int num;
/* 初始化随机数发生器 */
srand((unsigned)time(&ti));
num = rand() % 100;
printf("随机数已生成,开始游戏\n");
int n, i, a[1000], m;
i = 0, m = 0;
//数组是存储输入的数据,m是数组的下标从零开始
// lei是雷
while (1)//这是无限循环可以一直猜数,直到猜中
{
printf("请输入所猜数字\n");
scanf_s("%d", &n);
a[m] = n;//将输入的数存到数组中,等待下一次调用
if (n<num)//判断输入的数字与雷的大小
{
printf("too small\n");
if (i == 0)
printf("%d到100\n", n);
else if (i != 0)
printf("%d到%d\n", n, a[m - 1]);
}
else if (n>num)
{
printf("too big\n");
if (i == 0)
printf("1到%d\n", n);
else if (i != 0)
printf("%d到%d\n", n, a[m - 1]);
}
else if (n == num)
{
printf("恭喜你猜对了\n");
break;
}
i++;
m = m + 1;
if (i >= 10)
{
printf("游戏次数使用完毕!游戏到此结束。\n");
printf("小可爱,你重新开始游戏!\n");
break;
}
//printf("m=%d\n",m);
printf("第%d次\n", i);
}
system("pause");//暂停
return 0;
}

  • 写回答

1条回答 默认 最新

  • 关注

    说下你代码有什么问题

    你题目的解答代码如下:

    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    int main()
    {
        time_t ti;
        int num;
        /* 初始化随机数发生器 */
        srand((unsigned)time(&ti));
        num = rand() % 100 + 1;  //    num = rand() % 100; 是随机生成0到99  要随机生成1到100 应该加上1
        printf("随机数已生成,开始游戏\n");
        int n, i, max=100,min=1;
        i = 0;
        //数组是存储输入的数据,m是数组的下标从零开始
        // lei是雷
        while (1) //这是无限循环可以一直猜数,直到猜中
        {
            printf("请输入所猜数字\n");
            scanf_s("%d", &n);
            if (n < num) //判断输入的数字与雷的大小
            {
                printf("too small\n");
                if (n>min)
                    min = n;
                printf("%d到%d\n", min, max);
            }
            else if (n > num)
            {
                printf("too big\n");
                if (n<max)
                    max = n;
                printf("%d到%d\n", min, max);
            }
            else if (n == num)
            {
                printf("恭喜你猜对了\n");
                break;
            }
            i++;
            if (i >= 10)
            {
                printf("游戏次数使用完毕!游戏到此结束。\n");
                printf("小可爱,你重新开始游戏!\n");
                break;
            }
            //printf("m=%d\n",m);
            printf("第%d次\n", i);
        }
        system("pause"); //暂停
        return 0;
    }
    

    如有帮助,望采纳!谢谢!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 12月9日
  • 已采纳回答 12月1日
  • 创建了问题 12月1日

悬赏问题

  • ¥30 关于#java#的问题,请各位专家解答!
  • ¥30 vue+element根据数据循环生成多个table,如何实现最后一列 平均分合并
  • ¥20 pcf8563时钟芯片不启振
  • ¥20 pip2.40更新pip2.43时报错
  • ¥15 换yum源但仍然用不了httpd
  • ¥50 C# 使用DEVMOD设置打印机首选项
  • ¥15 麒麟V10 arm安装gdal
  • ¥20 OPENVPN连接问题
  • ¥15 flask实现搜索框访问数据库
  • ¥15 mrk3399刷完安卓11后投屏调试只能显示一个设备