解题思路以及注意事项:
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.7 (C语言代码)浏览:578 |
C语言程序设计教程(第三版)课后习题9.3 (Java代码)浏览:1019 |
C语言程序设计教程(第三版)课后习题11.1 (C语言代码)浏览:720 |
printf基础练习2 (C语言代码)浏览:952 |
C语言程序设计教程(第三版)课后习题6.10 (C语言代码)浏览:896 |
C语言考试练习题_保留字母 (C语言代码)浏览:733 |
Cylinder (C语言描述,蓝桥杯)浏览:1270 |
关于C语言变量位置的问题浏览:290 |
Minesweeper (C语言描述,蓝桥杯)浏览:1166 |
1024题解浏览:867 |