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

C语言新手求助:实现基于scanf/printf的循环确认功能

实现循环询问用户是否继续的C语言代码

嘿,作为刚学到C语言第二单元的新手,能明确自己的需求并来提问,这点超棒!我刚好可以帮你实现这个功能,只用scanf和printf就搞定,下面是代码和详细解释:

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

int main() {
    char input[10]; // 定义足够大的数组存储用户输入
    do {
        printf("是否继续?请输入yes或no:");
        // 用scanf读取字符串,自动跳过空白字符(比如换行)
        scanf("%s", input);
        
        // 比较输入内容,strcmp返回0表示两个字符串完全相等
        if (strcmp(input, "yes") == 0) {
            printf("程序继续运行中...\n");
            // 在这里添加你需要继续执行的代码逻辑
        } else if (strcmp(input, "no") != 0) {
            printf("输入无效,请重新输入yes或no!\n");
        }
    // 只要输入不是no,就继续循环询问
    } while (strcmp(input, "no") != 0);
    
    printf("程序已终止。\n");
    return 0;
}

关键知识点解释

  • do-while循环的选择:我们需要至少询问用户一次,do-while循环会先执行一次循环体的内容,再判断循环条件,完美匹配这个需求。
  • 字符串比较用strcmp:在C语言里,不能直接用==比较字符串内容,因为input是字符数组的地址,"yes"是字符串常量的地址,两者地址永远不相等。strcmp函数会逐字符对比两个字符串,返回0就代表内容完全一致。
  • 输入缓冲区处理:scanf("%s", input)会自动跳过输入前的空白字符(比如上一次输入后留下的换行符),所以不用担心残留的换行影响下一次输入。另外定义input[10]是为了预留足够空间,避免输入过长导致缓冲区溢出。
  • 逻辑流程梳理:
    • 每次循环先提示用户输入
    • 读取输入后判断:如果是yes,执行后续代码;如果是no,退出循环;其他输入则提示无效,继续循环。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 09:21:20