2 gray940 Gray940 于 2016.02.26 10:22 提问

初学菜鸟来了,怎么老是输出不正确的!

#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);
}
奇怪!这道比较大小编程是书上的,我看了几遍,和书上的没差啊,哪里错了??
怎么无论大小,每次的输出结果都是我输入的第一个数???

5个回答

caozhy
caozhy   Ds   Rxr 2016.02.26 11:17
已采纳

程序没有错,但是你怎么输入的,要输入 第一个数逗号第二个数
比如
1,2
max=2

hzhdy
hzhdy   2016.02.26 11:28

这句scanf("%d,%d",&a,&b);
你中间有个逗号,所以输入时需要"1,5"
注意,如果你输入“1 5”则默认为x =1 而 y为随机数,一般初始化随机数都是负多少多少多少。。。。你中间的逗号

Gray940
Gray940 蟹蟹,是酱紫呢!
接近 2 年之前 回复
John_ToStr
John_ToStr   Rxr 2016.02.26 16:23

scanf函数的功能你还是不理解。 这是此问题的症结所在
对于整形浮点型数据间隔字符一定与双引号内间隔字符一至,(例如以上例子:双引号内是逗号, 假如你输入1 空格 2 那么scanf函数只会读取1,
读到空格结束)注意:scanf函数将空白字符当作默认结束符。 当然空白字符包括(空格, 制表符(tab键),回车(enter键) )

因此 我断定你应该是这么输入的 如图所示:
图片说明

Gray940
Gray940   2016.02.26 17:59

蟹蟹各位的解答,的确呢
我输入是1 2这样子的,中间漏了逗号,说到底还是对scanf函数的功能不够了解,我会继续努力的

luojj26
luojj26   2016.02.26 11:09

scanf中的两个%d之间的逗号去掉试试。scanf中的输入内容要保持严格的一致性,也就是说,你原来的程序在输入的时候要加上逗号。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!