湖畔读书人


私信TA

用户名:2814787590

访问量:55854

签 名:

等  级
排  名 25
经  验 9707
参赛次数 0
文章发表 42
年  龄 0
在职情况 学生
学  校 武汉东湖学院
专  业

  自我简介:

解题思路注意事项:


找出三个数的最大值,三目运算符可以很简单的做到:

(x>y?x:y)>z?(x>y?x:y):z

首先x和y比较,接着x和y间的最大值和z比较,如果大于z则输出x和y之间较大的指,如果x和y之间的较大值小于z,则输出z。


参考代码:

#include<stdio.h>
#define MAX(x,y,z) (x>y?x:y)>z?(x>y?x:y):z

double max(double x,double y,double z)
{
	return (x>y?x:y)>z?(x>y?x:y):z;
}

int main()
{
	double x,y,z,max1,max2;
	scanf("%lf%lf%lf",&x,&y,&z);
	max1 = MAX(x,y,z);
	max2 = max(x,y,z);
	printf("%.3lf\n%.3lf\n",max1,max2);
	return 0;
}


 

0.0分

15 人评分

  评论区

#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 a,double b,double c)
{
double maxa,maxb;
    maxa=MAX(a,b);
    maxb=MAX(maxa,c);
    printf("%.3lf",maxb);  
    //return maxa;
}
2019-12-04 19:05:43 | |
#include<stdio.h>
#define MAX(a,b,c) max1=a,((max1<b?:max1=b)>c?:max1=c);
int main()
{
	double max2(double a,double b,double c);
	double a,b,c,max1;
	scanf("%lf%lf%lf",&a,&b,&c);
	max2(a,b,c);
	MAX(a,b,c);
	printf("%.3lf\n",max1);
}
double max2(double a,double b,double c)
{
	double max=a;
	if(max<b)
	{
		max=b;
	}
	if(max<c)
	{
		max=c;
	}
	printf("%.3lf\n",max);
	return 0;
}
哪里错误了呢,这个典型的问题有助于提高大家C语言编程能力
2019-11-09 11:51:35 | |
x>y? x : y为条件表达式,若x>y成立则这个表达式的值为后面x,否则表达式的值是y,
z?(x>y?x:y):z     这个是什么东西
2019-07-16 10:48:54 | |
#define ZUI_DA(a,b,c) a>b?(a>c?a:c):(b>c?b:c)
float Zui_Da(float a, float b, float c)
{
	if (a < b)
	{
		a = b;
	}
	
	if (a < c)
	{
		return c;
	}
	else
		return a;
}
int main()
{
	float a, b, c;
	scanf("%f%f%f", &a, &b, &c);
	printf("%.3f\n",Zui_Da(a, b, c));
	printf("%.3f\n", ZUI_DA(a,b,c));
	return 0;
}
2019-05-11 11:04:55 | |
#include<stdio.h>
#define MAX(x,y,z) (x>y?x:y)>z?(x>y?x:y):z

double max(double x,double y,double z)
{
	return (x>y?x:y)>z?(x>y?x:y):z;
}

int main()
{
	double x,y,z,max1,max2;
	scanf("%1f %1f %1f",&x,&y,&z);
	max1 = max(x,y,z);
	max2 = MAX(x,y,z);
	printf("%.3f\n%.3f\n",max1,max2);
	return 0;
}

是这个,不是上面的
2019-04-07 10:55:42 | |
#include<stdio.h>
#define MAX(x,y,z) (x>y?x:y)>z?(x>y?x:y):z
 
double max(double x,double y,double z)
{
    return (x>y?x:y)>z?(x>y?x:y):z;
}
 
int main()
{
    double x,y,z,max1,max2;
    scanf("%lf%lf%lf",&x,&y,&z);
    max1 = MAX(x,y,z);
    max2 = max(x,y,z);
    printf("%.3lf\n%.3lf\n",max1,max2);
    return 0;
}
这个为什么错了?求大佬解答
2019-04-07 10:55:16 | |
  • «
  • 1
  • »