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() |
配合使用避免输入遗留问题 |
错误输入处理 | 如果输入不是数字,清空缓冲区防止死循环 |