当前位置: 代码迷 >> C语言 >> 求助!!双判断语句
  详细解决方案

求助!!双判断语句

热度:80   发布时间:2007-03-17 16:00:58.0
求助!!双判断语句

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上留言,谢谢!

搜索更多相关的解决方案: int  else  语句  max  

----------------解决方案--------------------------------------------------------

这样改
#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;
}


----------------解决方案--------------------------------------------------------
  相关解决方案