问题描述:
分别用函数和带参的宏,从三个数中找出最大的数。
样例输入:
1 2 3
样例输出:
3.000
3.000
代码分析:
函数与宏的使用:
函数 max() 用于找出三个实数中的最大值,通过比较大小并更新变量 max 的值来实现。
宏 MAX_MACRO 也是用于找出三个实数中的最大值,通过嵌套的条件表达式来实现。
代码实现:
#include <stdio.h>
// 函数找出最大值
double max(double a, double b, double c) {
double max = a;
if (b > max) {
max = b;
}
if (c > max) {
max = c;
}
return max;
}
// 宏找出最大值
#define MAX_MACRO(a, b, c) ((a > b) ? ((a > c) ? a : c) : ((b > c) ? b : c))
int main() {
double num1, num2, num3;
scanf("%lf %lf %lf", &num1, &num2, &num3);
// 使用函数找出最大值
double result_func = max(num1, num2, num3);
printf("%.3lf\n", result_func);
// 使用宏找出最大值
double result_macro = MAX_MACRO(num1, num2, num3);
printf("%.3lf\n", result_macro);
return 0;
}