题目描述
定义一个带参的宏(或者模板函数),从三个数中找出最大的数。
输入
3个短整型数,空格隔开
3个实数,空格隔开
3个长整数,空格隔开
输出
最大的数,对于实数保留2位小数。
样例输入
1 2 3
1.5 4.7 3.2
1234567 12345 12345678
样例输出
3
4.70
12345678
提示
主函数已给定如下,提交时不需要包含,会自动添加到程序尾部
/* C++代码 */
int main()
{
short int i1,i2,i3,maxi;
double d1,d2,d3,maxd;
long l1,l2,l3,maxl;
cout<<setiosflags(ios::fixed);
cout<<setprecision(2);
cin>>i1>>i2>>i3;
maxi=MAX(i1,i2,i3);
cout<<maxi<<endl;
cin>>d1>>d2>>d3;
maxd=MAX(d1,d2,d3);
cout<<maxd<<endl;
cin>>l1>>l2>>l3;
maxl=MAX(l1,l2,l3);
cout<<maxl<<endl;
return 0;
}
代码如下:
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
#define MAX(a,b,c) a>b?(a>c?a:c):(b>c?b:c)
int main()
{
short int i1,i2,i3,maxi;
double d1,d2,d3,maxd;
long l1,l2,l3,maxl;
cout<<setiosflags(ios::fixed);
cout<<setprecision(2);
cin>>i1>>i2>>i3;
maxi=MAX(i1,i2,i3);
cout<<maxi<<endl;
cin>>d1>>d2>>d3;
maxd=MAX(d1,d2,d3);
cout<<maxd<<endl;
cin>>l1>>l2>>l3;
maxl=MAX(l1,l2,l3);
cout<<maxl<<endl;
return 0;
}
学习心得:
图就不截了,多留点时间敲代码。。
第一次接触宏的概念,感觉特别好用啊,省下了大部分编写函数的时间。
但是我还是解释不了宏,容我有空问问度娘。