void main( )
{
int max(int x,int y,int z);
int a,b,c,d;
scanf("%d,%d,%d",&a,&b,&c);
d=max(a,b,c);
printf("max=%d\n",d);
}
int max(int x,int y,int z)
{
int m;
int n;
int q;
if (x>y)m=x;
{
if (z>m)q=z;
else q=m;
}
else m=y;
{
if (z>m)q=z;
else q=m;
}
return(q);
}
此程序有错,在max函数中套用双重判断(if if else else if else)的正确方法是什么??
小弟急,望在QQ240566798上留言,谢谢!
----------------解决方案--------------------------------------------------------
这样改
#include "stdio.h"
void main( )
{
int max(int x,int y,int z);
int a,b,c,d;
scanf("%d,%d,%d",&a,&b,&c);
d=max(a,b,c);
printf("max=%d\n",d);
}
int max(int x,int y,int z)
{
int q;
q=x>y?x:y;
q=q>z?q:z;
return(q);
}
----------------解决方案--------------------------------------------------------
你的代码错误太多,而且程序执行度不高。
我给你改了一下。
#include <stdio.h>
int max(int x,int y,int z);
int max(int x,int y,int z)
{
int m,n;
m=(x>y)?x:y;
n=(m>z)?m:z;
return n;
}
void main( )
{
int a,b,c,d;
printf("Enter the three numbers:\n");
scanf("%d%d%d",&a,&b,&c);
d=max(a,b,c);
printf("max=%d\n",d);
}
----------------解决方案--------------------------------------------------------
你的if else都没有起到判断的作用
因为像这句if (x>y)m=x;
根据判断确定执行或不执行m=x,但是if语句到此结束,不会根据条件对{}内的内容处理
也就是说不管if是否成立
{
if (z>m)q=z;
else q=m;
}这句都会执行
----------------解决方案--------------------------------------------------------
int max(int a, int b, int c)
{
int big = a, temp = b > c ? b : c;
if(big > temp)
return big;
else
return temp;
}
----------------解决方案--------------------------------------------------------