解题思路以及注意事项:
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的纠正,希望大家向他学习
0.0分
2 人评分
#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; }
发现有BUG哦!!! maxi=MAX(a,b); //依次比较 maxi=MAX(b,c); maxi=MAX(a,c); 这段宏的比较如果b是最大的情况下,输出不正确哦。
Mister-小方 2017-06-29 13:16:13 |
对对,很有想法
帝国时代 2017-08-04 08:41:48 |
厉害
中微子 2017-12-09 22:44:00 |
看不懂,emmm哪有bug
1231231231 2018-08-14 07:12:33 |
输出怎么不正确了?
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:563 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:636 |
简单的a+b (C语言代码)浏览:575 |
C二级辅导-等差数列 (C语言代码)浏览:806 |
GC的苦恼 (C语言代码)浏览:673 |
C语言程序设计教程(第三版)课后习题12.6 (C语言代码)浏览:733 |
1197求助浏览:669 |
C语言程序设计教程(第三版)课后习题8.5 (C语言代码)浏览:710 |
A+B for Input-Output Practice (III) (C语言代码)浏览:455 |
C语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:832 |