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

C/C++新手打印用户输入数值及运算结果运行报错如何解决?

问题排查与修复方案

存在的错误点

  • 语法错误:printf 格式化字符串写法不符合C语言规范

    你编写的 printf("\nAddition of " a "+" b "=%d", sum); 是错误写法,C语言不支持直接将变量穿插在多个字符串字面量之间拼接输出,必须在格式化字符串中使用对应占位符传递变量值,int类型对应的格式化占位符为%d,正确的格式化字符串应为 "\nAddition of %d + %d = %d",之后依次传入a、b、sum三个参数即可。

  • 兼容性错误:引用了非标准头文件<conio.h>

    该头文件是老版Turbo C编译器的专属头文件,不属于C标准库,在GCC、Clang等绝大多数现代编译器下都无法识别,且你的代码中没有用到任何该头文件提供的函数,可以直接删除。

  • 潜在运行时风险:未做除数为0的校验

    你的代码直接执行了a/b和a%b运算,如果用户输入的第二个数b为0,会直接触发运行时崩溃,建议增加判断逻辑规避该问题。

修正后的完整代码

#include <stdio.h>

int main(){
    int a, b, sum, sub, div, mult, rem;
    
    printf("Enter the 1st number : ");  
    scanf("%d", &a);  
    printf("Enter the 2nd number : ");
    scanf("%d",&b);
    
    sum = a + b;  
    sub = a - b;  
    mult = a * b;  
    // 增加除数非0判断,避免运行时崩溃
    if (b != 0) {
        div = a / b;  
        rem = a % b;
    }
    
    printf("\nAddition of %d + %d = %d", a, b, sum);
    printf("\nSub = %d", sub);  
    printf("\nMult = %d", mult);  
    if (b != 0) {
        printf("\nDiv = %d", div);  
        printf("\nRem = %d \n", rem);  
    } else {
        printf("\nDiv and Rem operation cannot be performed: divisor cannot be 0\n");
    }
  
    return 0;   
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 11:15:02