C语言:能够规定次数,处理非法字符的猜数游戏(三重循环)

让计算机想一个数,用户来猜,猜对,猜错都会提示,最多可以猜10次。如果输入非数字字符(比如字母,字母和数字的组合)不会报错;

10次以后,询问用户是否要继续猜,如果用户回答Y或y,就继续猜,否则结束程序。

代码

cs 复制代码
#include <stdio.h>
#include <stdlib.h> 
#include <time.h>   
int main()
{
    int magic,guess,counter=0;
    int ret; //保存函数scanf的返回值
    char reply;
    do{
        counter=0;   //猜下一个数之前,把计数器清0
        srand(time(NULL)); // 为rand()设置随机数种子
        magic= rand() %100 +1; 
        printf("计算机想的数是%d\n",magic);
        do{
            printf("input guess number:");
            ret =scanf("%d",&guess);
            while (ret != 1)
            {
                while (getchar() != '\n'); //清除输入缓存区的非法字符
                printf("input magic number:");
                ret= scanf("%d",&guess);
            }
            counter++;
            if (guess>magic)
            {
                printf("too big!\n");
            }
            else if (guess<magic)
            {
                printf("too small!\n");
            }
            else
            {
                printf("right!\n");
            }
        }while (guess !=magic && counter <4);
        printf("一共猜了%d次\n",counter);  //打印计数器
        printf("do you want to continue(Y/N or y/n)?");
        scanf(" %c",&reply);  //%c故意留一个空格,增加程序健壮性(输入"  y"也可以被识别)
    }while (reply == 'Y' || reply == 'y');
}

希望用户仅在输入N或n才结束程序,输入N或n以外的字符还会继续猜数。

只需要修改最后一行代码

cs 复制代码
while (reply != 'N' && reply != 'n');  //输入的数不是n或N,循环还会继续

运行效果

相关推荐
李小白杂货铺13 分钟前
识别和破除信息茧房
算法·信息茧房·识别信息茧房·破除信息茧房·算法推荐型茧房·观点过滤型茧房·茧房
来荔枝一大筐1 小时前
C++ LeetCode 力扣刷题 541. 反转字符串 II
c++·算法·leetcode
apocelipes1 小时前
POSIX兼容系统上read和write系统调用的行为总结
linux·c语言·c++·python·golang·linux编程
暴风鱼划水1 小时前
算法题(Python)数组篇 | 6.区间和
python·算法·数组·区间和
zl_vslam2 小时前
SLAM中的非线性优-3D图优化之轴角在Opencv-PNP中的应用(一)
前端·人工智能·算法·计算机视觉·slam se2 非线性优化
是苏浙2 小时前
零基础入门C语言之C语言实现数据结构之顺序表应用
c语言·数据结构·算法
AA陈超2 小时前
虚幻引擎5 GAS开发俯视角RPG游戏 P07-08 点击移动
c++·游戏·ue5·游戏引擎·虚幻
lkbhua莱克瓦242 小时前
Java基础——常用算法3
java·数据结构·笔记·算法·github·排序算法·学习方法
小白程序员成长日记2 小时前
2025.11.07 力扣每日一题
数据结构·算法·leetcode
·白小白3 小时前
力扣(LeetCode) ——209. 长度最小的子数组(C++)
c++·算法·leetcode