C++ While循环错误:";使用未初始化的局部变量;
我正在做一个赋值,修改一个计算数字阶乘的程序,这样当用户输入数字“0”时程序就会终止。代码如下:C++ While循环错误:";使用未初始化的局部变量;,c++,for-loop,while-loop,C++,For Loop,While Loop,我正在做一个赋值,修改一个计算数字阶乘的程序,这样当用户输入数字“0”时程序就会终止。代码如下: #include <iomanip> #include <iostream> using namespace std; int main() { unsigned int numb; unsigned long fact = 1; while (numb > 0) { cout << "Enter a
#include <iomanip>
#include <iostream>
using namespace std;
int main()
{
unsigned int numb;
unsigned long fact = 1;
while (numb > 0)
{
cout << "Enter a number: ";
cin >> numb;
for (int j = numb; j > 0; j--)
{
fact *= j;
cout << "Factorial is " << fact << endl;
}
}
return 0;
}
#包括
#包括
使用名称空间std;
int main()
{
无符号整数numb;
无符号长事实=1;
而(麻木>0)
{
不能>麻木;
对于(int j=numb;j>0;j--)
{
事实*=j;
库特
当你第一次点击这个表达式时,numb
的值是多少?编译器也不知道
不能>麻木
在while循环之前,在进入之前初始化numb。然后将现有的cout、cin语句移动到循环的末尾。如果要进行阶乘,则必须这样进行(在变量中):
1.说出电话号码
2.带缩减计数器的环路(--j)
3.在循环中乘以计数器。
4.循环后,显示结果(事实)
#包括
使用名称空间std;
int main()
{
无符号整数numb;
无符号长事实=1;
不能>麻木;
对于(int j=numb;j>0;--j)
{
事实*=j;
}
你不能不初始化numb
。这个错误很明显。这甚至不是一个真正的错误。你在使用什么编译器?
unsigned int numb;
unsigned long fact = 1;
while (numb > 0)
#include <iostream>
using namespace std;
int main()
{
unsigned int numb;
unsigned long fact = 1;
cout << "Enter a number: ";
cin >> numb;
for (int j = numb; j > 0; --j)
{
fact *= j;
}
cout << "Factorial is " << fact << endl;
return 0;
}