max函数总取输入的第一个值

来源:百度知道 编辑:UC知道 时间:2024/06/17 16:28:50
我照这我们课本上把一个程序输入创天中文VC++,那是一个区最大值的程序,可总是取的第一个值,程序如下:
#include<stdio.h>
void main()
{
int max(int x,int y);
int a,b,c;
scanf("%d,%d",&a,&b);
c=max(a,b);
printf("max=%d\n",c);
}
int max(int x,int y)
{
int z;
if(x>y) z=x;
else z=y;
return(z);
}
不管我怎么输入总是取第一个值,例如我输入1,2 然后回车,显示的是max=1.是怎么回事啊?谁能告诉我啊?谢了啊

程序无误
========================================
这个程序我编译过,根本没问题
估计是楼主的输入手法有问题,制成功输入了第一个数

你在输出max的之前输出ab看看吧..觉得你的scanf有点问题..我只学过c++..对c的io不熟..

scanf("%d,%d",&a,&b);改成scanf("%d%d",&a,&b);
格式控制里的那个逗号去掉,自己去看一下scanf的相关资料。

你把 int max(int x,int y);放在main上面就可以啦

输入“1,2” ,没有问题啊。注意逗号也要输入...

#include<stdio.h>
#include<stdlib.h>

main()
{
int max(int x,int y);
int a,b,c;
printf("input two numbers:\n");
scanf("%d%d",&a,&b);
c=max(a,b);
printf("max=%d\n",c);

system("pause");
return 0;
}

int max(int x,int y)
{
int z;
if(x>y) z=x;
else z=y;
return(z);
}

修改后的代码如上。
代码有以下几点错误。
第一,main返回int。
第二,scanf()的格式控制串不需要“,”。