首页 > 解决方案 > 在 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 中运行此脚本并发布他们的结果,非常感谢,谢谢

标签: c++

解决方案


当您说sum = x * y在定义时对其进行评估时,它不是数学中的公式,稍后在渲染时对其进行评估。

sum = x * y语句执行时,xy没有初始化,所以值sum基本上是垃圾。

要查看此行为的实际效果,请在调试器中单步执行您的代码并查看 、xy的值sum

要么将其移至之后 xy正确定义,要么将其移至函数,例如:

int sum(int x, int y) {
  return x * y;
}

推荐阅读