整数在VSCommunity2019,windows10中未初始化
Integer is uninitialized in VSCommunity2019,windows10
我正在用 c++ 制作一个计算器,除了阶乘之外,我完成了所有工作,它有一个问题: 我的 int 编号是"未初始化"的,这是 Windows2019 上的 VSHaCommunity10 上的控制台应用程序,如果有帮助的话。除了阶乘之外,一切都很完美,当我测试它时,唯一的错误是 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
是未初始化的。
int main()
{
int number; //uninitialized local variable
[...] //no usage of number
case '!':
for (i = 1; i <= number; i++) { //first usage of number, before initializing it!
fact = fact * i;
}
std::cout << number;
break;
[...]
}
幸运的是,您会收到编译错误并且可以修复它(感谢MSVC!对于 gcc(在编译资源管理器中尝试时,它会编译,但我认为会出现运行时错误(。
溶液?可能会将循环中的n1
替换number
,并输出fact
.
相关文章:
- 是否可以初始化不可复制类型的成员变量(或基类)
- C++使用整数的压缩数组初始化对象
- C++初始化基类
- 多成员Constexpr结构初始化
- 复制列表初始化的隐式转换的等级是多少
- 内联映射初始化的动态atexit析构函数崩溃
- 如何在C++中初始化嵌套类中的2个memeber
- 如何声明特征矩阵,然后通过嵌套循环初始化它
- 没有用于初始化C++中的变量模板的匹配构造函数
- 在未初始化映射的情况下,将值插入到映射的映射中
- C++成员初始化
- 为什么在C++中首先初始化成员类
- 同时具有"聚合初始化"和"模板推导"
- 初始化具有非默认构造函数的std::数组项的更好方法
- 是否可以在编译时初始化数组,以便在运行时不会花费时间?
- 我可以使用条件运算符初始化C风格的字符串文字吗
- 在C和C++中初始化结构中的数组
- 标准是否使用多余的大括号(例如 T{{{10}}})定义列表初始化?
- 在函数内部的声明中初始化数组,并在外部使用它
- 整数在VSCommunity2019,windows10中未初始化