C语言编程比较两个数的大小,输入数后运行显示出结果总是前面的那个

2025-05-14 05:37:55
推荐回答(4个)
回答1:

编译你的程序运行正常呀,例如

$ ./a.exe

31415,33333

max=33333

$ ./a.exe

3333,3142

max=3333

我估计你输入数据的格式没注意的可能性比较大,碰到这种问题加一句printf 显示一下实际的a,b值往往对解决问题有帮助。例如改成这样:

#define DEBUG1 1
#include
main()
{
int a,b,c;
scanf("%d,%d",&a,&b);
#if DEBUG1
printf("a=%d, b=%d\n",a,b);
#endif
c = max(a,b);
printf("max=%d",c); 
}
int max(x,y)
int x,y;
{   int z;
    if (x>y)  z=x;
    else  z=y;
    return (z); 
}

回答2:

scanf("%d%d", &a, &b);

你的是scanf("%d,%d",&a,&b);
你输入 应该要这样 5,6
改成scanf("%d%d", &a, &b);
你输入就可以 这样 5 6

回答3:

#include
int max(int x,int y);
int main()
{
int a,b,c;
scanf("%d,%d",&a,&b);
c = max(a,b);
printf("max=%d",c);
}
int max(int x,int y)
{

int z;
if (x>y) z=x;
else z=y;
return (z);
}
用你程序改的 不知道你用的什么编译器 实在是..

回答4:

#include
main()
{
int a,b,c;
scanf("%d,%d",&a,&b);
c = max(a,b);
printf("max=%d",c);
}
int max(x,y)
{
int x,y;
int z;
if (x>y) z=x;
else z=y;
return (z);
}
你再试试