变压器验收规范ppt:小弟刚自学c,问个极菜的问题

来源:百度文库 编辑:神马品牌网 时间:2024/04/27 16:39:52
做的是一个比较任意三个数大小的程序:
#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 is %d.\n",d);
}
int max(int x,int y,int z)
{
int q
if (x>y>=z) q=x;/*问题出在本行的第一个括号上*/
if (x>z>=y) q=x;
if (y>x>=z) q=y;
if (y>z>=x) q=y;
if (z>x>=y) q=z;
if (z>y>=x) q=z;
else q=x;
return (q);
}
正如注释,编成后complie时发现error就出在那一行的第一个括号上,“Declaration syntax error“
晕了,搞不明白,请指点~
对不起moxsone:我少打了那个分号,问题不是出在那里。
ps:用的是tcpp3.0
zhouke2005:试了,同样不好使。问题出在倒数第三行:lvalue required
苍冥:看不懂~出了大问题,4个errors 晕~

前一行结尾没有加分号。
在C语言中,很多前面的错误在后面才表现出来。
你在查错的时候要前后联系起来看。

语法错误
你用这个代替
if(x>y&&x>z) q=x;
下边的IF语句也都换成这个形式
用“与”来运算

#include <stdio.h>
void main()
{
int max(int x,int y);
int max(int x,int y,int z);
int a,b,c,d;
scanf("%d",&a);
scanf("%d",&b);
scanf("%d",&c);
d=max(a,b,c);
printf("max is %d.\n",d);
}
int max(int x,int y){return x>y?x:y;}
int max(int x,int y,int z){return max(max(x,y),z);}

这次应该可以了,我的思路就是把一个max(x,y,z)简化成max(x,y)重叠调用,这样不用考虑那么多种情况了,另外scanf我不太熟悉,好像连着用有点问题,我把它分开之后结果正常了

……晕,可能编译器不同,我的是VC++6.0版

不用这么麻烦
你的max函数这样写
int max(int a,int b,int c)
{ return (c>((a>b)?a:b))?c:((a>b)?a:b);}