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

MacOS下VS Code运行C程序异常:输入首数后流程异常跳转

C程序运行异常的问题分析与修复

核心错误及修复方法

  • scanf格式字符串错误:你写的scanf("a=%lf\n", &a)要求输入必须严格匹配a=数值的格式,而且末尾的\n会让scanf持续等待非空白字符,直接导致后续输入被跳过。改成scanf("%lf", &a),运行时直接输入数值回车即可,无需加a=前缀。
  • 计算公式语法错误:计算d的代码里,b(a+b+c)漏了乘法运算符*,要写成b*(a+b+c);同时括号不匹配,sqrt()的右括号和分母(a+b都未闭合,直接引发语法错误。
  • 编译链接缺失:使用math.h里的sqrt函数时,gcc编译必须加-lm参数链接数学库,否则会报未定义引用错误。
  • 输出格式错误:printf("result=%lf\n:",d);里的冒号位置错误,移到\n前面或者直接删掉,避免输出混乱。

修正后的完整代码

#include<stdio.h>
#include<math.h>
int main(void)
{
    double a,b,c;
    printf("enter number a: ");
    scanf("%lf", &a);
    printf("enter number b: ");
    scanf("%lf", &b);
    printf("enter number c: ");
    scanf("%lf", &c);
    
    double d = sqrt(a * b * (a + b + c) * (a + b - c)) / (a + b);
    printf("result=%lf\n", d);
    
    return 0;
}

正确编译命令

在终端执行:

gcc test2.c -o test2 -lm

运行程序后,依次输入三个数值回车,就能得到正确结果。

内容的提问来源于stack exchange,提问作者Роман Романчук

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 11:33:11