You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言do-while循环实现三次答错输出指定提示问题求解

代码问题排查

你的计数思路本身没问题,现有代码跑不通是三个硬伤导致的:

  • 循环外的printf("stop answering wrong freak!\n");是无条件执行的,不管用户是答对跳出循环,还是答错3次跳出,都会打印这句话,答对了也会触发错误提示。
  • 循环末尾的break;属于非法语法,break关键字只能在循环、switch语句块内部使用,写在循环外会直接编译报错。
  • 代码里调用了strcmp函数但没有引入<string.h>头文件,部分编译环境下会出现判断逻辑异常、编译失败的问题。
修正方案

调整循环内的分支跳转逻辑,答对后直接终止程序,只有答错满3次跳出循环时才打印对应提示,删掉非法语法,补全头文件即可。
修正后的完整可运行代码:

#include <stdio.h>
#include <string.h>

int main() {
    char n[20];
    int x = 0;

    do {
        printf("Are you cool yes/no ? ");
        scanf("%19s", n);

        if (strcmp(n, "yes") == 0) {
            printf("%s is the correct answer, i can only be friends with cool people\n", n);
            return 0;
        }
        x++;
        printf("%s is the wrong answer, i only like cool people sorry!\n", n);
    } while (x < 3);

    printf("stop answering wrong freak!\n");
    return 0;
}
运行效果说明
  • 任意一次输入yes:立即输出答对提示,程序正常结束,不会触发答错满3次的提示
  • 累计输入3次非yes内容(不局限于no,任意非yes输入都会被判定为答错):输出3次答错提示后,打印stop answering wrong freak!,程序结束。如果需要严格判定只有输入no才算答错,只需要在现有判断分支里加一层输入内容是否为no的校验,匹配后再给计数器自增即可。

内容的提问来源于stack exchange,提问作者dddave

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 21:45:46