gpt4 book ai didi

C++ : Unexpected output

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:10:52 31 4
gpt4 key购买 nike

我有以下代码:

int a , b , sum;
cin>>a>>b;
sum=a+b;
cout<<sum;

我完全知道您不能将浮点值存储在整数中。所以在我的程序第一次运行时:

10 2.5

12

我得到预期的输出 12,因为 2.5 的小数部分被忽略

在第二次运行中,我将浮点值放在第一位:

2.5 10

442837

我得到一个垃圾值,有人知道发生了什么吗?

感谢帮助:)

最佳答案

初始化您的变量,您将看到发生了什么。它不会忽略小数点。它导致停止解析的错误。所以你看到的疯狂数字其实就是未初始化整数的值。

事情是这样的:当您键入“10 2.5”时,它会将 10 放入 a,将 2 放入 b。它不会忽略 0.5。要了解实际发生的情况,请尝试以下代码:

int a=100 , b=200 , c=300, sum;
cin>>a>>b>>c;
cout<<a<<endl;
cout<<b<<endl;
cout<<c<<endl;

然后输入“10 2.5”,a为10,b为2,c为300! “.5”导致 cin 出现错误,因此它只是将 c 保留为默认值。但是因为你只读了 2 个值,它似乎工作得很好。因此,请使用您的第二组输入“2.5 10”尝试该版本。 A 将是 2,然后 b 将是 200,c 将是 300。这表明 cin 在看到小数点时遇到错误,然后就放弃了。

最后,为了好玩,删除我示例中的初始化,看看你如何获得 b 和 c 的疯狂值。

关于C++ : Unexpected output,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28479888/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com