首先理解题目表达的含义

题目描述:分别用函数和带参的宏,从三个数中找出最大的数。

输入格式: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.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论