为什么C++程序在太大时返回代码而不是答案?
Why does C++ programs return a code instead of the answer when it's too big?
我正在编写一个C++程序来计算一个数学问题。我先写:
int x = 1
int y = 1
int z = 1
int answer = x * y * z
cout << answer << endl;
当我构建并运行它时,它会打印 1。但是当我这样做时:
int x = 1234;
int y = 5243;
int z = 1142;
int answer = x * y * z;
cout << answer << endl ;
它打印出一个答案,这是7388502404,但一个我不明白的代码:"-1201352188"。 你能解释一下为什么会发生这段代码,以及如何解决代码吗?
它不是代码,而是存储在整数结果中的值。您遇到整数溢出。int
只能保存特定大小的值,当您超过该大小时,您最终会得到不是您想要的位模式,但仍然可以存储在int
中。有时这些位模式是负数的整数表示,这就是这里发生的事情。
您可以考虑使用较大的整数类型,例如long
或long long
。
相关文章:
- 我无法在Visual Studio代码中使用CIN输入答案,它说输入您的年龄,但它说只读文本编辑器如何解决这个问题?
- 为什么C++程序在太大时返回代码而不是答案?
- 不理解为什么代码没有产生所需的答案
- 为什么我在代码厨师的 CMPRSS 问题中得到 WA(错误答案)?
- 请找出我的代码中的错误,它在提交得到错误答案的同时仍然适用于我的所有测试用例
- 任何人都可以弄清楚这段代码如何显示运行错误?它打印无限时间 -1 以及正确答案
- 为什么在此代码中使用 auto 和 int 给出不同的答案?
- 多项式系数代码始终提供相同的答案
- 删除矢量显示代码 c++ 段时答案更改
- 如何修复此代码对几个测试用例的错误答案?
- 竞争性编程 - 代码对在线编译器给出了不同的答案
- 以下代码的输出是什么(答案因差异编译器而异)
- 需要找到总的平方差,并且代码没有产生正确的答案,我们有一部分代码,必须填写空白
- 创建一个程序,要求用户输入两个数字,并有三个可能的答案.代码未编译.数字(作为int)
- SPOJ 问题 ADDREV - 添加反转数字(考虑到我的代码,我得到了一个错误的答案,这很荒谬......
- 我如何让我的部分代码循环并重复一个问题,直到答案是有效的输入C++
- 在代码厨师中得到错误的答案:平衡的比赛
- 我怎么能设法从我的代码中获得复数的答案
- 代码的错误答案是在Java Camel案件和C 下划线标识符之间转换的错误答案
- 我的粒子群优化代码在 C++ 和 MATLAB 中生成不同的答案