鱼C论坛

 找回密码
 立即注册
查看: 1586|回复: 10

输出结果跟书里的不对呀,求解

[复制链接]
发表于 2020-6-9 23:27:42 | 显示全部楼层 |阅读模式

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

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

x
#include<stdio.h>
main()
{
        int a,b,c;
        printf("输入a 和 b 的值:");
   scanf("%d%d",&a,&b);
        c=a;
        a=b;
        b=c;
        printf("a=%d,b=%d\n",a,b);
}

输入a=34  b=21
书的结果是   b=34   a=21

这边运行结果是

a=0   b=34
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-9 23:43:08 | 显示全部楼层
我这里运行没问题,答案正确
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-10 00:00:55 | 显示全部楼层
楼主 代码是需要规范的
#include<stdio.h>
int main()
{
        int a,b,c;
        printf("输入a 和 b 的值:");
        scanf("%d%d",&a,&b);
        c=a;
        a=b;
        b=c;
        printf("a=%d,b=%d\n",a,b);
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-10 09:30:20 | 显示全部楼层
看上去是没问题的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-10 16:20:35 | 显示全部楼层
小甲鱼的铁粉 发表于 2020-6-10 00:00
楼主 代码是需要规范的

  return 0;
这一行代表啥
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-10 16:26:54 | 显示全部楼层
小甲鱼的铁粉 发表于 2020-6-10 00:00
楼主 代码是需要规范的

输入你这个代码输出的答案也不对,依然是a=0 ,B=34
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-10 17:47:02 | 显示全部楼层
输值时用空格隔开就行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-10 19:39:50 | 显示全部楼层
阿波呀 发表于 2020-6-10 16:26
输入你这个代码输出的答案也不对,依然是a=0 ,B=34

输入的时候不是输入“a=34,b=21"
而是"34 21"这样输入
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-10 19:40:42 | 显示全部楼层
不是代码的问题,是你操作的时候在运行框里输入的问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-11 08:39:28 | 显示全部楼层
1、这个代码本身是没有问题的,问题是出在了在那个黑窗口的输入。
2、从你的输出0, 34来看,第一个输入是有效的,第二个输入是无效的(或者是没有达到预期的),而且从你的描述上来看,你的确输入了34  ,21两个数字,所以问题应该出在这两个数字之间用什么隔开了。
3、平常一般两个输入之间都是用空格“ ”或者逗号“,”隔开的,我试了一下,发现用空格隔开的时候是能正常输出的,但是用逗号隔开的时候a的值变成了随机值(int的最小值),所以我很好奇你中间用什么隔开了,导致输出的结果是 0 34
4、我想了下既然有输出并且输出不是随机值,说明scanf成功读取了个值给b,然后我去对照ascii码表,对应0值的字符是空格,所以我想你在两个数字之间是不是使用了多个空格。
5、通过实验,我发现无论中间用多少个空格最终都能正确读取数值,我感到很困惑。后来我总结了一下可能的原因①我们两个的编译器版本不一样,我虽然能正确读取数值,但是你的编译器不可以。②你用了其它的字符导致了这个结果③我一开始的猜想就是错误,你的这个输出结果是其它BUG产生的。
6、如果可以,请务必告诉我你的两个输入数值之间是用什么字符隔开的!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-11 11:16:22 | 显示全部楼层
两个输入符号之间加空格,或者逗号,输入的时候记得用英文逗号,推荐用空格隔开
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-13 15:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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