这是我的程序,输入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);
}
你的函数本身没有错。
scanf("%d,%d",&a,&b);
这句建议写成下面这样防止输错成中文标点。
scanf("%d%d",&a,&b); 输入时用空格隔开输入即可。
把max函数改一下,这个纯属传递问题。你离成功就差一步。
你写的是值传递,值传递形参改变实参不变。
你应该转化为引用传递或则指针传递,它们俩形参改变实参也会改变。可以改成
max(int&x,int &y);
输入数据时,逗号要使用英文的
# 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);
}