C语言基础-练习:猜数字
C语言实现猜数字小游戏
猜数字游戏是C语言学习中一个经典而实用的练习项目,它不仅帮助我们掌握基本的 输入输出、分支判断、循环结构,还涉及 随机数的生成 和 交互设计。今天我们就一步一步带你用C语言实现一个好玩的“猜数字”小游戏!
游戏规则
程序自动随机生成一个 1 到 100 之间的整数,玩家不断猜数字,程序提示“大了”或“小了”,直到猜中为止。猜中后可以选择是否再玩一局。
涉及知识点
#include标准库头文件- 随机数生成:
rand()与srand()以及time(NULL) - 循环结构:
while和do-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;
}
📝 程序运行示例

📌 代码说明
| 部分 | 说明 |
|---|---|
srand(time(NULL)) |
用当前时间作为随机种子,确保每次运行都有不同结果 |
rand() % 100 + 1 |
将随机数限制在 1~100 范围 |
do...while 循环 |
支持多轮游戏 |
scanf() 和 getchar() |
配合使用避免输入遗留问题 |
| 错误输入处理 | 如果输入不是数字,清空缓冲区防止死循环 |
本文来自博客园,作者:ffff5,转载请注明原文链接:https://www.cnblogs.com/ffff5/p/19012796

浙公网安备 33010602011771号