首先理解题目表达的含义
题目描述:分别用函数和带参的宏,从三个数中找出最大的数。
输入格式:3个实数
输出格式:最大的数,输出两遍,先用函数,再用宏。 保留3位小数。
解题思路:
1.要求输入实数,并保留三位小数,我们定义的函数返回值类型和定义的变量类型应为浮点数float/double类型,因为数值范围较小,这里用float就可以
2.定义一个函数和带参的宏,如 float maxN(); MAX(a,b,c);
3.c++中的max()函数在#include<algorithm>头文件中,用于找到两个值中的最大值。这里我用了#include<bits/stdc++.h>万能头文件
4.手动写上头文件后,在maxN()函数中,可以直接用max()函数来比较数值大小,float mNum=max(a,max(b,c))将b,c中的最大值找出来,再与a进行比较,最后 返回最大值
5.同理,带参的宏也可以这样做,MAX(a,b,c)max(a,max(b,c)); 表示定义了一个名为MAX的宏,它接受三个参数a,b和c,宏的展开结果是使用max()函数找到这三个参数中的最大值。
6.fixed与setprecision(3),用于控制输出浮点数的格式和精度,使后面的数保留三位小数。
fixed是一个用于控制浮点数的输出格式的控制符,小数点后的位数由cout对象的precision成员决定。
注意事项:
题目细节不要忘记,如要求输出结果保留三位小数
不建议直接修改cout.precision(int num)中的参数大小来改变小数点后的位数,
直接修改 cout 对象的 precision 成员变量会影响该对象的全局输出格式(修改后的 precision 值会对后续所有使用该 cout 对象的输出操作都生效,而不仅仅是对 当前输出操作)
建议使用setprecision() 操作符与 fixed 操作符一起使用去控制输出格式。
参考代码:
#include<iostream> #include<bits/stdc++.h> using namespace std; #define MAX(a,b,c)max(a,max(b,c)); float MAXN(float a,float b,float c){ float mNum=max(a,max(b,c)); return mNum; } int main() { float a,b,c; cin>>a>>b>>c; float m=MAXN(a,b,c); float maxNum=MAX(a,b,c); cout<<fixed<<setprecision(3)<<m<<endl; cout<<fixed<<setprecision(3)<<maxNum<<endl; return 0; }
0.0分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复