C语言三角形面积计算代码错误修正
#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; }
修正后的代码中,有以下更改:
main函数的返回类型改为int。- 使用
%lf代替%f以读取double类型的输入。 scanf函数中p=(a+b+c)/2的赋值写法进行了修正。- 在计算
x前进行了三角形边长的合法性判断。 - 计算
x的表达式x = sqrt(p * (p-a) * (p-b) * (p-c))进行了修正。 printf函数中的输出语句进行了修改。
请注意,这些更改仅修正了代码中的一些错误,但并不能保证逻辑的正确性。在计算三角形面积时,请确保输入的三个边长满足构成三角形的条件。
原文地址: https://www.cveoy.top/t/topic/cLc2 著作权归作者所有。请勿转载和采集!