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

题目描述
分别用函数和带参的宏,从三个数中找出最大的数。
输入
3个实数
输出
最大的数,输出两遍,先用函数,再用宏。保留3位小数。
样例输入
1 2 3
样例输出
3.000
3.000

#include<stdio.h>

#define  max(a,b,c) (a>b?a:b)>(b>c?b:c)?(a>b?a:b):(b>c?b:c)     //注意宏定义后面没有分号

float fun(float a,float b,float c)
{
    float max=0;
    if(a>b)
      max=a;
    else
      max=b;
    if(a>c)                            //等同于max=(a>b?a:b)>(b>c?b:c)?(a>b?a:b):(b>c?b:c);
      max=a;
    else
      max=c;
    if(b>c)
      max=b;
    else
      max=c;
    return max;
}



int main()
{
   float a,b,c;
   scanf("%f %f %f",&a,&b,&c);
   printf("%.3f\n",fun(a,b,c));
   printf("%.3f",max(a,b,c));
   return 0;    
}

//几个不同的宏定义的书写方法

//#define  max(a,b,c)  (a>b?a:b)>(b>c?b:c)?(a>b?a:b):(b>c?b:c)
//#define  max(a,b,c)  (a>b?(a>c?a:c):(b>c?b:c))
//#define  max(a,b,c)  (a>b?a:b)>z?(a>b?a:b):z

//看起来差不太多,个人觉得后两种比较容易理解
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值