一道非常简单的C语言题,求教高手
原题,输入A,B,C,3个数,输出其中最大的一个
我编的程序:
main ( )
{
int a,b,c,d,e;
scanf ("%d,%d,%d",&a,&b,&c);
d = max (a,b);
if (d>c) e=d;
else e=c;
printf ("big=%d",e);
}
int max(int x,int y)
{int z;
if (x>y) z=x;
else y=z;
return (z);
}
请问:1我编程序的思路对不对?如果不对为什么?
2如果对请问我哪步错了,请给我这种思路的正确答案(不要别的思路的)
3这个程序编译好执行的时候总是输出163,为什么?
我在这里先谢谢各位的指教,不要骂我,我是新手。
问题点数:100、回复次数:12Top
1 楼GeoPhoenix(天鸽)回复于 2003-09-01 07:22:55 得分 40
在max函数里有一点错误
int max(int x,int y)
{int z;
if (x>y) z=x;
else y=z;//错误 应为 z = y;
return (z);
}
还有,数据输入函数scanf我用的过程中从来没用','可修改如下
scanf ("%d%d%d",&a,&b,&c);
还有你既然定义了max函数在主函数部分显得有点罗索,总体修改如下:
main ( )
{
int a,b,c,e;
scanf ("%d%d%d",&a,&b,&c);
e = max (a,b);
e = max(e,c);
printf ("big=%d",e);
}
int max(int x,int y)
{int z;
if (x>y) z=x;
else z = y;
return (z);
}
Top
2 楼fathappy(我是猫)回复于 2003-09-01 08:24:46 得分 24
1,你的思路是对的。
2。你的错误在max函数中的y=z。楼上的已经写出来了。
3 你让你的变量等于一个未赋值的变量,Top
3 楼garay(莲)回复于 2003-09-01 08:33:10 得分 1
你的思路是对的。GeoPhoenix(天鸽) 已经详细的写出来了Top
4 楼Behard(我爱天安门)回复于 2003-09-01 08:59:34 得分 10
main ( )
{
int a,b,c;
scanf ("%d,%d,%d",&a,&b,&c);
printf ("big=%d",max(max(a,b),c));
}Top
5 楼linjl(木子)回复于 2003-09-01 09:36:03 得分 1
Behard(我爱天安门),你给人家一新人这么一复杂的嵌套表达式没必要吧。
好了,不打屁了,拣分来也。
Top
6 楼hong668(心情不错)回复于 2003-09-01 09:41:51 得分 1
来晚了还有分吗?Top
7 楼hellobcb(学海无涯,回头是岸)回复于 2003-09-01 09:53:02 得分 1
当然有啦!Top
8 楼int64(@163.com:所有的程序员都应该团结起来!)回复于 2003-09-01 10:23:42 得分 1
楼主思路正确,但是代码有些复杂了
e=max(a,max(b,c));
就好了Top
9 楼Cocoky(我爱野百合)回复于 2003-09-01 10:45:10 得分 1
int max(int x,int y)
{int z;
if (x>y) z=x;
else y=z;
return (z);
}
错了,应改为:
int max(int x,int y)
{int z;
if (x>y) z=x;
else z = y;
return (z);
}
Top
10 楼Cocoky(我爱野百合)回复于 2003-09-01 10:50:05 得分 10
double max=((a>b)?a:b)>c?((a>b)?a:b):c;就可以了!!!!Top
11 楼swites(难民营中的人)回复于 2003-09-01 11:09:52 得分 10
下面语句都行:
1.)int max(int x,int y){return (x>y)?x:y;}
2.)#define max(int x,int y) (return (x>y)?x:y;)
Top
12 楼III(不爱带眼镜的猫)回复于 2003-09-01 11:49:23 得分 0
呵呵,原来是我犯了低级错误,谢谢各位的指教。Top




