解题思路: 使用带返回值的宏
注意事项: 1⃣️注意审题!保留三位小数!宏中的类型是否定义准确了!
2⃣️由于编写宏的时候编译器不会检查你的语法错误,所以我们一定要细心再细心地检查我们所定义的参数类型是否正确,是否正确添加分号等等,出现多个表达式的时候,建议使用反斜杠\分行。
参考代码:
#include <stdio.h>
#include <math.h>
#define S(a,b,c) \
({float S_;\
S_=( a + b + c ) / 2 ; S_;})
#define A(s,a,b,c) ({float A_;\
A_ =sqrt( s * ( s - a ) * ( s - b ) * ( s - c ) ); A_;})
int main(){
float a,b,c,s,area;
scanf("%f%f%f",&a,&b,&c);
s = S(a, b, c);
area = A(s, a, b, c);
printf("%.3f",area);
return 0;
}
0.0分
2 人评分
简单的a+b (C语言代码)浏览:765 |
C二级辅导-进制转换 (C语言代码)浏览:551 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:590 |
Pascal三角 (C语言代码)格式错误浏览:550 |
C语言训练-数字母 (C语言代码)浏览:670 |
C语言程序设计教程(第三版)课后习题8.1 (C语言代码)浏览:1292 |
2003年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:638 |
【蟠桃记】 (C语言代码)浏览:1084 |
1017题解浏览:663 |
1054题解浏览:516 |