谭浩强第四版C程序设计例1.3

谭浩强第四版C程序设计例1.3

问题描述:

代码如下,省略注释
#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;
}
int max(int x,int y)
{
int z;
if(x>y)z=x;
else z=y;
return (z);
}
然后编译运行,输入8,5 显示max=8,
输入5,8 居然显示max=5,
用的Dev-C++ 5.9.2版本,求大神指教什么情况

个人感觉你输入的逗号(,)是在中文模式下输入的,应该切换在英文模式下输入
我在本地测试了一下,如下
中文,
图片说明
英文,
图片说明
用中文的逗号,由于跟你的函数里面的英文逗号不匹配,所有b没有被赋值,仍然为0
图片说明

你输入的是中文的全角逗号?那样第二个数字不能赋值。
没有初始化的b可能是一个很小的负数,所以出现等于5的结果。
程序本身没错,但是输入要用半角
5,8

非常感谢您的纠正,纠结了好久