#include <stdio.h> #define SEMI_PERIMETER(a, b, c) ((a + b + c) / 2.0) #define TRIANGLE_AREA(a, b, c) (SEMI_PERIMETER(a, b, c) * \ (SEMI_PERIMETER(a, b, c) - a) * \ (SEMI_PERIMETER(a, b, c) - b) * \ (SEMI_PERIMETER(a, b, c) - c)) \ 0.5 int main() { double a, b, c; printf("Enter the sides of the triangle a, b, c: "); scanf("%lf %lf %lf", &a, &b, &c); double area = TRIANGLE_AREA(a, b, c); printf("The area of the triangle is: %.2lf\n", area); return 0; }优化
时间: 2023-11-27 12:49:47 浏览: 30
可以对宏定义进行一些调整和优化,使代码更加简洁和可读:
```
#include <stdio.h>
#define SEMI_PERIMETER(a, b, c) ((a + b + c) / 2.0)
#define TRIANGLE_AREA(a, b, c) (SEMI_PERIMETER(a, b, c) * \
(SEMI_PERIMETER(a, b, c) - a) * \
(SEMI_PERIMETER(a, b, c) - b) * \
(SEMI_PERIMETER(a, b, c) - c)) / 2.0
int main() {
double a, b, c;
printf("Enter the sides of the triangle a, b, c: ");
scanf("%lf %lf %lf", &a, &b, &c);
double area = TRIANGLE_AREA(a, b, c);
printf("The area of the triangle is: %.2lf\n", area);
return 0;
}
```
主要的改动有:
1. 在宏定义中添加了 `/ 2.0`,避免在计算三角形面积时出现错误。
2. 将宏定义的多行代码使用反斜杠 `\` 进行分行,使代码更加美观和易读。
3. 对代码进行了适当的缩进和空格处理,使其更加整洁和易读。