#include <stdio.h> #include <stdlib.h> #include <math.h>

int main() { double a, b, c, x, p; printf("please input triangle sides:"); scanf("%lf,%lf,%lf", &a, &b, &c); p = (a + b + c) / 2; if (a + b <= c || a + c <= b || b + c <= a) { printf("data error"); } else { x = sqrt(p * (p - a) * (p - b) * (p - c)); printf("Output:\narea=%.2lf", x); } return 0; }

修正后的代码中,有以下更改:

  1. main 函数的返回类型改为 int
  2. 使用 %lf 代替 %f 以读取 double 类型的输入。
  3. scanf 函数中 p=(a+b+c)/2 的赋值写法进行了修正。
  4. 在计算 x 前进行了三角形边长的合法性判断。
  5. 计算 x 的表达式 x = sqrt(p * (p-a) * (p-b) * (p-c)) 进行了修正。
  6. printf 函数中的输出语句进行了修改。

请注意,这些更改仅修正了代码中的一些错误,但并不能保证逻辑的正确性。在计算三角形面积时,请确保输入的三个边长满足构成三角形的条件。

C语言三角形面积计算代码错误修正

原文地址: https://www.cveoy.top/t/topic/cLc2 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录