c++ - 在 C++ 计算脚本中总是返回 466750944
问题描述
#include <iostream>
using namespace std;
multiplication() {
int x;
int y;
int sum;
sum = y * x;
cout << "multiplication" << endl;
cout << "enter first number for multiplication: ";
cin >> x;
cout << "enter second number for multiplication: ";
cin >> y;
cout << "your product is: " << sum <<endl;
return 0;
}
void division (){
cout << "division" << endl;
}
void addition (){
int y;
int x;
int sum = x * y;
cin >> x;
cin >> y;
cout << sum;
}
void subtraction (){
}
int main()
{cout << "enter 1 for multiplication, enter 2 for division, enter 3 for addition, and enter 4 for subtraction"<<endl;
int math;
cin >> math;
switch(math){
case 1:
multiplication();
break;
case 2:
division();
default:
cout << "it dont work ooga booga"<<endl;
break;
case 3:
addition ();
break;
case 4:
subtraction();}
return 0;
}
这是我要运行的脚本,我在 code::blocks 中运行,如果有问题会导致它总是返回 466750944 请告诉我,这样我可以在这方面做更多工作,如果有人的话,这可能是我的代码块问题也可以在代码块或其他 ide 中运行此脚本并发布他们的结果,非常感谢,谢谢
解决方案
当您说sum = x * y
在定义时对其进行评估时,它不是数学中的公式,稍后在渲染时对其进行评估。
当sum = x * y
语句执行时,x
并y
没有初始化,所以值sum
基本上是垃圾。
要查看此行为的实际效果,请在调试器中单步执行您的代码并查看 、x
和y
的值sum
。
要么将其移至之后 x
并y
正确定义,要么将其移至函数,例如:
int sum(int x, int y) {
return x * y;
}
推荐阅读
- c# - Xamarin 上的“此平台不支持 Microsoft.Data.SqlClient”
- git - 如何在 git pull 之后将本地仓库恢复到上一个提交?
- c++ - 如何将 fortran 程序与模块依赖项链接以在 c++ 中使用?
- kotlin - 在 Kotlin 中,是否可以调用成员扩展函数来指定分派到的对象和接收者?如果是这样,怎么做?
- windows - Flutter 广告可以在 Window 和 MacOS 上运行吗
- reactjs - 为什么在设置值时 Material-UI 不将标签放置在输入上方?
- javascript - 有什么办法可以编写“统一”的 Node.js 和浏览器 JS?
- c++ - FFTW OpenMP 并行化?
- javascript - 使用 JavaScript 更改 HTML 文本行的单个颜色
- android - 如何根据属性以不同的方式继续 Rx 链?