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

struct SPoint //点 { double x; double y; double z; } a1, a2, a3;

int main() { double P = 0, s = 0, a = 0, b = 0, c = 0; scanf("%lf%lf%lf%lf%lf%lf%lf%lf%lf", &a1.x, &a1.y, &a1.z, &a2.x, &a2.y, &a2.z, &a3.x, &a3.y, &a3.z); a = sqrt((a1.x - a2.x)(a1.x - a2.x) + (a1.y - a2.y)(a1.y - a2.y) + (a1.z - a2.z)(a1.z - a2.z)); b = sqrt((a2.x - a3.x)(a2.x - a3.x) + (a2.y - a3.y)(a2.y - a3.y) + (a2.z - a3.z)(a2.z - a3.z)); c = sqrt((a1.x - a3.x)(a1.x - a3.x) + (a1.y - a3.y)(a1.y - a3.y) + (a1.z - a3.z)(a1.z - a3.z)); P = (a + b + c) / 2.0; s = sqrt(P(P - a)(P - b)(P - c)); printf("%.2lf", s); return 0; }

这段代码存在一些问题,修正后的代码如下:

  1. 头文件<string.h>没有使用到,应该删除。

  2. scanf函数中缺少了一个参数,应该为9个。

  3. 在计算三角形边长时,代码中的符号应该是减号,而不是加号。

  4. 主函数中应该加上return 0;。

C语言计算三角形面积代码优化:修正错误并提高效率

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

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