鱼C论坛

 找回密码
 立即注册
查看: 3277|回复: 9

为嘛答案老是a呢

[复制链接]
发表于 2013-8-17 16:42:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x



今天遇到一道题目,求两个整数中的较大者。书中给出的答案程序是:
#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);
}

书中说随意输出两个数8和5,运行结果为     8,5
                                                                    max=8        

可我运行出来以后,不管是第一个还是第二个数大,答案永远都是第一个数字,比如我输入 69 96,答案为max=69,我输入88  63,max=88,我纠结了,看程序半天也没看出是哪出问题呀,求高手指点迷津!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-8-17 17:06:44 | 显示全部楼层
程序没问题,是你输入有问题。
你的输入方式应该是69,96 而不是69 96. 中间要用逗号分隔符。不然scanf应该认为你输入的第二个需要比较的数字是不是你真正想获得的,但是具体咋来的,请高手解答下。
scanf("%d,%d",&a,&b);
printf("%d,%d",a,b);
69 96
69,-858993460max=69
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-17 17:09:48 | 显示全部楼层
因为你的scanf("%d,%d",&a,&b);
这一句用了逗号隔开两个数,
要么你这输入的时候用逗号比如45,56
要么你把scanf的逗号去掉
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-17 17:17:57 | 显示全部楼层
因为你输入格式中有个逗号   输入格式要一样,不然scanf()函数只成功读取前一个数{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-17 17:29:33 | 显示全部楼层
跟你说,我也是从视频学的:
scanf是输入函数,scanf()的非输出符号要原样输入才行,
比如:
scanf("%d,%d", a, b); 如果这样写的话,你必须输入中间的逗号,必须!!!这个一定记好
如果你输入 8,5 这个是ok的,但是 8  5  就不行。
所以出现了一个问题,当你以后在编写程序的时候,最好避免在scanf语句里加上例如 ,(逗号)  ;(分号) ,最不能出现的符号是 这样的 scanf("%d%d\n"); 看到\n了吗?别加这个

朋友,建议你书和视频一起看,我就是这样的。  呵呵 ,祝你学的越来越好!
楼上的回答的其实都很好,只是我发表一下我的意见。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-17 17:44:13 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-17 17:44:44 | 显示全部楼层
604274069 发表于 2013-8-17 17:17
因为你输入格式中有个逗号   输入格式要一样,不然scanf()函数只成功读取前一个数

原来是我自己疏忽了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-17 17:45:26 | 显示全部楼层
604274069 发表于 2013-8-17 17:17
因为你输入格式中有个逗号   输入格式要一样,不然scanf()函数只成功读取前一个数

原来如此,谢谢啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-17 17:45:59 | 显示全部楼层
leewon 发表于 2013-8-17 17:06
程序没问题,是你输入有问题。
你的输入方式应该是69,96 而不是69 96. 中间要用逗号分隔符。不然scanf应该 ...

3Q
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-17 17:46:51 | 显示全部楼层
cwl胖胖 发表于 2013-8-17 17:29
跟你说,我也是从视频学的:
scanf是输入函数,scanf()的非输出符号要原样输入才行,
比如:

恩,这下懂了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-15 06:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表