C语言,帮帮忙,要用有参有返回值函数做,

来源:百度知道 编辑:UC知道 时间:2024/05/23 14:23:20
max(int x,int y)
{
int z;
z =(x>y)?x:y; /*有参有返回值*/
return z;
}

main()
{
int a,b,c,d,e,f,g,h,i,j;
scanf ("%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f);
g =max(a,b);
h =max(c,d);
i =max(e,f);
j=(g,h,i)
printf("%d",j);
getch();
}
bacdef 这6个数想得出最大的一个,所以把它压到3个数,就不会做了。我知道是后面错,,不过不知错那里。。

j=(g,h,i)??
你是打算写j=max(g,h,i)吧
这肯定错了,因为max函数的参数只有两个
你可以这么写
----------------------------------
j=max(max(g,h),i);

j=(g,h,i); 这句错了,
1:没有函数名啊,这就相当于把i赋给了j即j=i;
2:实参有三个,形参只有两个啊
应该在定义的时候再定义两个变量k,m;
main()
{int a,b,c,d,e,f,g,h,i,j,k;
scanf("%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f);
g=max(a,b);
h=max(c,d);
i=max(e,f);
j=max(g,h);
k=max(i,j);
printf("%d",k);
}
不知道提问者用getch(); 干什么??!
如果用 j=(max(g,h)?max(h,i):max(g,h)); 是不对的,后面是一个条件语句
表达式1?表达式2:表达式3
表达式1成立则执行表达式2,否则执行表达式3
max(g,h)的值永远为非0,永远成立

j=(g,h,i)是一个逗号表达式
max(int x,int y)
{ return(x>y? x:y) }
main()
{ int a,b,c,d,e,f,g,h,i,j,k,l;
....
k=max(g,h);
l=max(k,i);
j=max(k,l); /还要再将 g,h,i 再比出最大的/
....

j=(g,h,i)错了,j=max(g,h)?max(h,i):max(g,h)