主题:求助啊!!!!
blacktsky
[专家分:0] 发布于 2011-08-11 07:59:00
我是初学者,有不懂的就靠大家多提点了。我遇到一道题“编写一个C程序,输入a、b、c3个值,输出其中最大者。”下面是我写的东西,希望各位高手修改一下。
main()
{
int a,b,c,d;
scanf("%d,%d,%d",&a,&b,&c);
d=max(a,b,c);
printf ("max=%d",d)
}
int max (int x,int y)
{
int z;
if("x>y") z=x;
else z=y;
return (z);
}
结果输出的总是最小的那个值,郁闷。。。。。。
回复列表 (共4个回复)
沙发
drasty [专家分:0] 发布于 2011-08-11 10:41:00
把d=max(a,b,c);
换成d=max(max(a,b),c);试试
板凳
blacktsky [专家分:0] 发布于 2011-08-12 00:11:00
还是不行啊,输出的总是第一个值,不管大小总是第一个。纠结啊...我是一点头绪也没有
3 楼
椿尘楠子 [专家分:50] 发布于 2011-08-15 10:11:00
你这样试试。
main()
{
int a,b,c,d;
scanf("%d,%d,%d",&a,&b,&c);
d=max(a,b,c);
printf ("max=%d",d)
}
int max (int x,int y,int z)
{
int t;
if(x>y) t=x;
else t=y;
if(t<z) t=z;
return t;
}
4 楼
洞庭渔夫 [专家分:100] 发布于 2011-08-18 14:16:00
你在什么平台下编译的呀,里面大把的语法错误呢
//第一,你的函数max在这里要先声明
main()
{
int a,b,c,d;
scanf("%d,%d,%d",&a,&b,&c);
d=max(a,b,c);//编译程序跑到这里的时候,怎么认得max是什么啊
printf ("max=%d",d)//这里语句末层要有分号,表示语句结束
}
int max (int x,int y)//这里max只有两个参数,前面可是有三个参数哦
{
int z;
if("x>y") z=x;
else z=y;
return (z);//你说的问题在这里,这里有两个变量z。看仔细了,参数传递的时候
} //有一个,你在里面又一个局部变量,按理说这里编译程序无法通,会报错的。
我改了一下,在VC6平台下通过了编译的
#include "stdafx.h"
int max(int x,int y, int z);
int main()
{
int a,b,c,d;
scanf("%d,%d,%d",&a,&b,&c);
d=max(a,b,c);
printf ("max=%d",d);
return 0;
}
int max (int x,int y,int z)
{
int i;
if(x>y) i=x;
else i=y;
if(i>z) return i;
else return z;
}
我来回复