循环错误:“未初始化的局部变量使用”

时间:2017-04-15 00:21:16

标签: 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 number: ";
        cin >> numb;

        for (int j = numb; j > 0; j--)
        {
            fact *= j;
            cout << "Factorial is " << fact << endl;

        }
    }

    return 0;
}

但是,我不断收到此错误消息:

错误C4700:使用了未初始化的局部变量'numb'

我做错了什么?

3 个答案:

答案 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;
}