题目:
Description
定义一个带参的宏(或者模板函数),从三个数中找出最大的数。
Input
3个短整型数,空格隔开
3个实数,空格隔开
3个长整数,空格隔开
Output
最大的数,对于实数保留2位小数。
Sample Input
1 2 3
1.5 4.7 3.2
1234567 12345 12345678
Sample Output
3
4.70
12345678
HINT
主函数已给定如下,提交时不需要包含,会自动添加到程序尾部
/* 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;
}
Source
代码:#include <iostream>
#include <iomanip>
#define MAX(a,b,c) a>b?a>c?a:c:b>c?b:c;
using namespace std;
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;
}
小结:学习了三个数取最大值的宏定义写法:#define MAX(a,b,c) a>b?a>c?a:c:b>c?b:c;