C语言二分法写猜数字小游戏

猜数字

题目:
输入n(0<n<100), 想让程序猜到的值
程序通过二分法不断缩小猜测范围, 直到猜中n
例如n = 39
程序第一次猜测50, 判断数值太大
第二次猜测25, 判断数值太小
第三次猜测37 判断数值太小
43 大
40 大
38 小
39 正确

代码附上:

#include <stdio.h>
#include <stdlib.h>
#define X 0                 //初始左边界
#define Y 100               //初始右边界

int main()
{
    int num;                //用户输入给系统猜的数字
    int x = X;
    int y = Y;
    int guess_num;          //系统猜测的数字
    int count = 0;          //计数器,初始为0

    guess_num = (x + y) / 2;//二分
    printf("请输入一个(0-100)的整数:");
    scanf("%d", &num);

    while(1)
    {
        count++;                        //循环一次表示猜了一次
        if(guess_num > num)             //如果系统猜测的值大于你输入的值
        {
            printf("%d\t大了!\n", guess_num);
            y = guess_num;              //将这个系统猜测值作为新的右边界
            guess_num = x + (guess_num - x) / 2;
        }
        else if(guess_num < num)        //如果系统猜测的值小于你输入的值
        {
            printf("%d\t小了!\n", guess_num);
            x = guess_num;              //将这个系统猜测值作为新的左边界
            guess_num = guess_num + (y - guess_num) / 2;
        }
        else
        {
            printf("%d\t正确了!\n", guess_num);
            break;
        }
    }
    printf("\n系统一共猜了 %d 次找到了正确答案!", count);
    return 0;
}

PS:0.0

上一篇:day02 python基础


下一篇:Java-猜数字游戏