没有错误,但没有输出

No errors, but no output

本文关键字:输出 有错误      更新时间:2023-10-16

请查看以下代码

#include <iostream>
#include <iomanip>
#include <vector>
#include <string>
using namespace std;
void isPerfect(int);
vector<int> list;
string numList = "";

int main()
{
    cout << "Number" << setw(10) << "Divisors" << setw(15) << "Calculation";
    for(int i=1;i<=1000;i++)
    {
        isPerfect(i);
    }
}

void isPerfect(int number)
{
    int calc = 0;
    for(int i=1;i<=(number/2);i++)
    {
        if(number%i == 0)
        {
            list.push_back(i);
            //numList = numList +  string. + ",";
        }
    }
    for(size_t i=0;i<list.size();i++)
    {
        calc = list[i] + calc;
    }
    if(calc == number)
    {
        cout << number << setw(10) << numList << setw(15) << calc << endl;
    }
}

在这里,我试图找到"完美的数字"(完美数字 - 如果它的总和(包括1但不是自我)等于数字,这是一个完美的数字。EX6)

但是,在这里,一切都是正确的,但是我没有得到任何结果,而不是打印我在主要方法中打印的内容。

为什么会发生这种情况?无论如何,这不是家庭作业。请帮助。

您的列表在全局变量中,因此它还包含所有以前的数字的除数。在isPerfect中本地声明。

随后您会发现,numList也是如此。