du_yu
du_yu
采纳率100%
2017-10-31 23:58 浏览 1.5k
已采纳

谭浩强第四版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版本,求大神指教什么情况

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答 默认 最新

  • 已采纳
    zjq_1314520 十木禾 2017-11-01 01:25

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

    点赞 1 评论 复制链接分享
  • caozhy 从今以后生命中的每一秒都属于我爱的人 2017-11-01 00:26

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

    点赞 1 评论 复制链接分享
  • du_yu du_yu 2017-12-28 06:01

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

    点赞 评论 复制链接分享

相关推荐