用一个函数实现两个整数中的较大者,在主函数中调用此函数并输出结果

这是我的程序,输入8,5得出的结果是8,输入5,8得出的结果却是5。程序运行起来没问题,求原因

#include
//主函数
int 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);
return 0;
}
//求两个整数中较大者的max
int max(int x,int y)
{

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

img

img

你的函数本身没有错。
scanf("%d,%d",&a,&b);
这句建议写成下面这样防止输错成中文标点。
scanf("%d%d",&a,&b); 输入时用空格隔开输入即可。

img


不要用中文的逗号

把max函数改一下,这个纯属传递问题。你离成功就差一步。
你写的是值传递,值传递形参改变实参不变。
你应该转化为引用传递或则指针传递,它们俩形参改变实参也会改变。可以改成
max(int&x,int &y);

输入数据时,逗号要使用英文的

img

img


# include <stdio.h>

int 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);
    return 0;
}
int max(int x,int y)
{
    int z;
    if(x>y)z=x;
    else z=y;
    return (z);

}