【发布时间】:2020-10-16 23:49:51
【问题描述】:
我正在用 C++ 制作一个计算器,除了有一个问题的阶乘之外,我已经完成了所有工作: 如果有帮助,我的 int 编号是“未初始化”,这是 windows10 上 vscommunity2019 上的控制台应用程序。除了阶乘之外,一切都很完美,当我测试它时,唯一的错误是 int 数。
#include <iostream>
using namespace std;
int main()
{
float n1;
char op;
float n2;
int co;
int i;
int fact = 1;
int number;
calculations: std::cout << "Enter n1!";
std::cin >> n1;
std::cout << "\nEnter operator! Here are your choices: + - * / !";
std::cin >> op;
std::cout << "\nEnter n2!";
std::cin >> n2;
switch (op)
{
case '+':
std::cout << n1 + n2;
break;
case '-':
std::cout << n1 - n2;
break;
case '*':
std::cout << n1 * n2;
break;
case '/':
std::cout << n1 / n2;
break;
case '!':
for (i = 1; i <= number; i++) {
fact = fact * i;
}
std::cout << number;
break;
default:
std::cout << "Error! operator is not correct";
break;
}
std::cout << "\nWant to continue?Y(type 1)/N(type 0)";
std::cin >> co;
if (co == 1) {
goto calculations;
}
return 0;
}
【问题讨论】:
-
当
number不确定时for (i = 1; i <= number; i++) {或std::cout << number;有什么意义(即int number;事实上,number是什么,即使在 的代码中也是如此 ? 我没有看到 ever 为该变量赋值的代码,但有几行需要一个。 -
什么阻止你初始化它?我不明白你的问题。您已经知道问题所在了。
-
未初始化的变量不是唯一的问题。代码使用
fact变量计算阶乘,然后使用number变量打印答案。我认为 OP 正在努力解决变量的基本概念。这段代码似乎是 OP 找到了两段不同的代码,并将它们剪切并粘贴在一起,并真正理解了其中一段代码。
标签: c++ for-loop int switch-statement factorial