菜鸟求助啊!C程序设计第一章第五题做不出!
题目是从三个数种得出最大的请问有什么错的!指教下![tk11]
#include<stdio.h>
main()
{
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 f;
if(x>y>z)f=x;
if(y>x>y)f=y;
else f=z;
return(f);
}
[[it] 本帖最后由 woyunlu 于 2008-7-21 23:22 编辑 [/it]] ...能运行...
[[it] 本帖最后由 ams87 于 2008-7-21 23:19 编辑 [/it]] 是能运行但是!不正确啊!
[[it] 本帖最后由 woyunlu 于 2008-7-21 23:21 编辑 [/it]] 你的输入系统格式不对.你这么输入:
a,b,c回车就对了 #include<stdio.h>
main()
{
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 f;
if(x>y>z)f=x;
if(y>x>y)f=y;//怎么二个Y啊???????????
else f=z;
return(f);
} 比较大小函数里面if()里用错了,不能用连不等号的~
要写成a>b&&b>c的形式
还有我觉得你的算法也有问题
直接写:
int f;
f=a>b?a:b;
f=f>c?f:c;
return f;
就可以了。 饿...这个倒没注意......怎么有这样的错误???改错题也不用这样找茬吧??? if里面的东西怎么能那么写... 饿........
回复 7# ams87 的帖子
a>b>c是一个表达式,所以一定有一个值。比如说a>b是成立的,那么是真,值为1;
之后再用1与c比较,肯定得不到正确答案的。
就像-5<a<5一样,这个式子一定是1. 哦...谢谢.偶菜鸟,读书的时候都睡觉去了....现在来补习.....请多多指教.. 没办法刚学的!什么都不懂!!多谢大家啦!! #include<stdio.h>
int max(int x,int y,int z)
{
int f;
if(x>y&&y>z)
f=x;
if(y>x&&y>z)f=y;
else f=z;
return f;
}
int main()
{
int a,b,c,d;
scanf("%d %d %d",&a,&b,&c);
d=max(a,b,c);
printf("max=%d\n",d);
} 楼上的真是标准答案呀~~~厉害。。。。。
对楼上的楼上的补充
将max模块放在上面比较好,让编辑器先编译然后再进入主函数会比较流畅,这样一般也能减少几个错误。你看看如何,我没环境了
#include<stdio.h>main()
{
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 f;
if(x>y)f=x;else f=y;
if(f>z)f=z;
return(f);
} [quote][bo][un]dwfaarp100n[/un] 在 2008-7-22 09:29 的发言:[/bo]
#include
main()
{
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 f;
if(x>y)f=x;else f=y;
if(f>z)f=z;
return(f);
} [/quote]
你的变了求最小值啦!13楼的是正确的!谢啦! [tk01] [tk01] [tk01] 其实没必要比较三数。只需把最大的数传给Z就行了。
int max(int x,int y,int z)
{
int t;
if(x>y)
y=x;
if(y>z);
z=y;
return(z);
} LZ太强了………………
页:
[1]
2
