我正在进行一项任务,我修改了一个计算数字因子的程序,以便程序在用户输入数字“0”时终止。这是代码:
#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;
}
但是,我不断收到此错误消息:
错误C4700:使用了未初始化的局部变量'numb'
我做错了什么?
答案 0 :(得分:1)
unsigned int numb;
unsigned long fact = 1;
while (numb > 0)
当您第一次点击此表达式时,numb
的值是多少?编译器也不知道。
答案 1 :(得分:0)
我放了一个
cout&lt;&lt; “输入一个数字:”;
cin&gt;&gt;麻木;
在while循环之前初始化numb,然后再进入。然后将现有的cout,cin语句移动到循环的末尾。
答案 2 :(得分:0)
如果你想要make factorial所以必须这样做(在你的变量中): 1.给出号码 2.减少计数器循环( - j) 3.通过计数器循环乘以。 4.循环后,显示结果(事实)。
#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;
}