C语言基础-练习:猜数字

C语言实现猜数字小游戏

猜数字游戏是C语言学习中一个经典而实用的练习项目,它不仅帮助我们掌握基本的 输入输出分支判断循环结构,还涉及 随机数的生成交互设计。今天我们就一步一步带你用C语言实现一个好玩的“猜数字”小游戏!

游戏规则

程序自动随机生成一个 1 到 100 之间的整数,玩家不断猜数字,程序提示“大了”或“小了”,直到猜中为止。猜中后可以选择是否再玩一局。

涉及知识点

  • #include 标准库头文件
  • 随机数生成:rand()srand() 以及 time(NULL)
  • 循环结构:whiledo-while
  • 条件判断:if-else
  • 用户输入:scanf()getchar()
  • 输入缓冲处理:避免输入错误导致程序逻辑中断

完整代码示例

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

int main(void) {
    srand((unsigned int)time(NULL)); // 设置随机种子

    int secret, guess;
    char choice;

    do {
        secret = rand() % 100 + 1;  // 生成 1~100 的随机数
        printf("🎯 新游戏开始!我想了一个 1~100 的数字,请猜猜它是多少:\n");

        while (1) {
            printf("请输入你的猜测:");
            if (scanf("%d", &guess) != 1) {
                // 输入错误处理:不是整数
                while (getchar() != '\n'); // 清空输入缓冲区
                printf("❌ 输入无效,请输入一个整数!\n");
                continue;
            }

            if (guess > secret) {
                printf("📈 太大了,再试试!\n");
            } else if (guess < secret) {
                printf("📉 太小了,再试试!\n");
            } else {
                printf("🎉 恭喜你猜对了!答案是 %d!\n", secret);
                break;
            }
        }

        while (getchar() != '\n'); // 清空上次回车符
        printf("是否再来一局?(Y/N):");
        scanf("%c", &choice);

    } while (choice == 'Y' || choice == 'y');

    printf("游戏结束,欢迎再次挑战!👋\n");
    return 0;
}

📝 程序运行示例

image

📌 代码说明

部分 说明
srand(time(NULL)) 用当前时间作为随机种子,确保每次运行都有不同结果
rand() % 100 + 1 将随机数限制在 1~100 范围
do...while 循环 支持多轮游戏
scanf()getchar() 配合使用避免输入遗留问题
错误输入处理 如果输入不是数字,清空缓冲区防止死循环
posted @ 2025-07-30 14:11  ffff5  阅读(103)  评论(0)    收藏  举报