C语言问题,初学者

来源:百度知道 编辑:UC知道 时间:2024/09/24 12:22:01
#include <stdio.h>
int main(int argc, char* argv[])
{
int max(int x,int y);
int a, b, c;
scanf("%d, %d", &a, &b);
c=max(a, b);
printf("max=%d\n", c);
return 0;
}int max(int x, int y)
{
int z;
if (x < y)
z=x;
else
z=y;
return z;
} 这个程序应该是求最大值的程序,为什么执行后输出的却是最小值?我相应的修改了条件语句,可是竟输出一个很大的负数……

max函数返回值你恰好取反了。

if (x < y)
z=x; //应该z=y
else
z=y; //应该z=x

另外max函数也可以这样写,供参考。

int max(int x, int y)
{
return x > y ? x : y;
}

if (x < y)
z=x;
else
z=y;
return z;
这个是求最大值
当x<y 就输出x
当x>y 就输出y

要输出最大值
就改为
if(x>y)
z=x;
else
z=y; 这样