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

C语言scanf输入异常求助:输入值与输出结果不符

输入输出不一致的原因及修复方案

你的代码中scanf的格式串"%d, %d"明确要求两个整数输入之间必须是逗号加空格(, ),但你实际输入的是5 9(仅用空格分隔),这会导致:

  • scanf成功读取第一个整数5到变量a中;
  • 后续的输入内容(空格和9)无法匹配格式串里的, ,因此变量b没有被正确赋值,它的值是内存中的随机垃圾数据(你看到的16就是这类随机值)。

两种修复方式:

  • 调整输入格式:按照代码要求输入,比如输入5, 9(逗号后必须加空格);
  • 修改代码格式串:适配空格分隔的输入习惯,将scanf的格式串改为"%d %d"(%d会自动忽略任意空白字符,包括空格、换行等),修改后的代码如下:
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>

int main()
{
    int a,b;
    scanf("%d %d", &a, &b);
    printf("%d, %d", a, b);

    return 0;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 05:20:30