有一个问题想问问带佬

我们C语言任务是“其中一人输入一个数字,另外一个通过每次猜测数字然后计算机给出的提示猜出最终答案”
有带佬知道怎么做嘛😭

猜数游戏?

#include <stdio.h>
#include <stdlib.h>
#include <time.h>//time系统时间头文件 
void menu()//创建游戏菜单 
{
    printf("**************\n");
    printf("****1.play****\n");
    printf("****0.exit****\n");
    printf("**************\n");
 } 
void playgame()
{
    int magic=rand()%100+1;//随机一个1-100的整数 
    int guess;
    int counter=0;//计数器,初始为0 
    while(1)
    {
        do{
            printf("请猜一个数字:");//提示用户进行猜数字游戏,输入一个整数
            scanf("%d",&guess);
            counter++;
            if(guess>magic)//根据比较结果,提示用户高了,低了,或是猜对了.
            printf("太大了!\n");
            else if(guess<magic)
            printf("太小了!\n");
        else
            printf("right!\n");     
        }while(guess!=magic);
    printf("您一共猜了%d次,你真是太棒了!\n",counter);
    }        
}
int main()
{
    int input=0;
    srand((unsigned int)time(0));//time(0)得到的是时间戳,对应头文件#include <time.h>
    do{
        menu();
        scanf("%d",&input); 
        switch(input)
        {
            case 1:
                playgame();
                break;
            case 0:
                exit(0);
                break;
            default:
            printf("输入错误!\n");
        }
    }while(input);
    return 0;
}

以下内容部分参考ChatGPT模型:


这个任务可以使用二分查找算法来实现。具体步骤如下:

  1. 让另一个人输入一个数字,作为猜测的答案。

  2. 计算机在一定范围内随机生成一个数字,作为第一次猜测的数字。

  3. 根据猜测的数字和答案的大小关系,给出提示。如果猜测的数字比答案小,提示“猜小了”,如果猜测的数字比答案大,提示“猜大了”。如果猜对了,提示“猜对了”。

  4. 根据提示,调整猜测的范围,再次随机生成一个数字,继续猜测。

  5. 重复步骤3和4,直到猜中答案。

下面是示例代码:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
    int answer, guess, min_num = 1, max_num = 100, count = 0;
    srand(time(NULL)); // 设置随机数种子
    printf("请输入一个数字作为答案:");
    scanf("%d", &answer);
    do {
        // 生成猜测的数字
        guess = rand() % (max_num - min_num + 1) + min_num;
        printf("第%d次猜测:%d\n", ++count, guess);
        if (guess == answer) {
            printf("猜对了!\n");
            break;
        } else if (guess < answer) {
            printf("猜小了!\n");
            min_num = guess + 1;
        } else {
            printf("猜大了!\n");
            max_num = guess - 1;
        }
    } while (1);
    return 0;
}

如果我的建议对您有帮助、请点击采纳、祝您生活愉快