原题链接:[编程入门]宏定义之找最大数
解题思路:
函数解法:
使用带参数有返回值的函数:float max(a,b,c),使用两个if语句便可以求出来最大值
float max = 0;
if (a > b)
max = a;//将a和b中的最大值赋给max
if (max < c)
max = c;//将max和c中的最大值赋给max
宏解法:
使用两个带参数的宏
#define T(a,b) max2=a>b?a:b
#define S(max2,c)max2=max2>c?max2:c
第一次使用Max3 = T(a, b);求出a和b中的最大值,然后将求出来的结果作为第二次比较的参数Max4 = S(Max3, c);可以求出三者中的最大值。
注意事项:
注意返回值类型和函数类型的值都是浮点型
参考代码:
# include <stdio.h> # include<stdlib.h> #define T(a,b) max2=a>b?a:b #define S(b,c)max2=max2>c?max2:c float max1(float a, float b, float c) { float max = 0; if (a > b) max = a;//将a和b中的最大值赋给max if (max < c) max = c;//将max和c中的最大值赋给max return max; } int main(void) { float a, b, c; float Max,Max3,Max4; float max2; scanf_s("%f%f%f", &a, &b, &c); Max=max1(a, b, c);//调用函数 Max3 = T(a, b);//使用宏第一次比较a和b中的最大值 Max4 = S(Max3, c);//将第一次比较的结果Max3作为第二次比较的参数 printf("%.3f\n", Max);//输出函数求的最大值 printf("%.3f\n",Max4);//输出宏求的最大值 system("pause"); return 0; }
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复