解题思路以及注意事项:
1.本题利用函数比较三个数中最大的,其实就是挨个儿比较,把大的传出来就可以了。

2.利用宏定义比较就要用到条件运算符,下面的代码我会给大家认真讲解。

3。注意输出几位小数。

实例代码:

#include<stdio.h>
double max(double x,double y,double z);
#define MAX(x,y) x>y ? x:y                //如果x>y,那么MAX(x,y)的值就是x,否则就是y
int main()
{
    double a,b,c,maxi,maxj;
    scanf("%lf %lf %lf",&a,&b,&c);             
    printf("%.3lf\n",max(a,b,c));                   //调用函数输出最大值
    maxi=MAX(a,b); 
    maxj=MAX(maxi,c);                          //依次比较
    printf("%.3lf",maxj);    
    return 0;
}
double max(double x,double y,double z)
{
double maxa;
    if(x>=y&&x>=z)
    {
        maxa=x;
    }
    else if(y>=x&&y>=z)
    {
        maxa=y;
    }
    else
    {
        maxa=z;
    }
    return maxa;
}

看看大家还有什么不解的,请在下方评论区留言,小方会在看到的第一时间为您解疑

谢谢FtSan的纠正,希望大家向他学习

点赞(13)
 

0.0分

2 人评分

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

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

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

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

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

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

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

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

评论列表 共有 6 条评论

一阳花开 5年前 回复TA
#include<stdio.h>
double max(double x,double y,double z);
#define MAX(x,y) x>y ? x:y    //如果x>y,那么MAX(x,y)的值就是x,否则就是y

int main()
{
    double a,b,c,maxi,maxj;
    scanf("%lf %lf %lf",&a,&b,&c);             
    max(a,b,c);                   //依次比较
 //   printf("%.3lf",maxj);    
    return 0;
}
double max(double x,double y,double z)
{
double maxa;
    if(x>=y&&x>=z)
    {
        maxa=x;
    }
    else if(y>=x&&y>=z)
    {
        maxa=y;
    }
    else
    {
        maxa=z;
    }
    printf("%.3lf",maxa);  
    //return maxa;
}
1231231231 6年前 回复TA
@FtSan 输出怎么不正确了?
中微子 7年前 回复TA
@FtSan 看不懂,emmm哪有bug
帝国时代 7年前 回复TA
@FtSan 厉害
Mister-小方 7年前 回复TA
@FtSan 对对,很有想法
FtSan 7年前 回复TA
发现有BUG哦!!!
 maxi=MAX(a,b);                                  //依次比较
 maxi=MAX(b,c);
 maxi=MAX(a,c);
这段宏的比较如果b是最大的情况下,输出不正确哦。