代码受 cout 影响,不需要代码

Code it being affected by a cout which is not need it code

该程序仅具有检查数字是否为完美数字的功能。一个完美的是它所有因素的总和(不包括数字本身)等于它自己的数字。喜欢 6(1 + 2 + 3 = 6) 也喜欢 28

我看到了一个奇怪的行为。有cout << ""。如果我们删除这一行代码将无法正常工作,如果我们把它一切正常。我无法理解这个

#include<iostream>
using namespace std;

int IsPerfect(int);
int main(){
    
    int N, j;
    cout << "Enter a value for N: ";
    cin >> N;
    cout  << "Perfect numbers are ";
    for(j=1; j<=N; j++){
        cout << ""; //If you remove this line no output will be printed
        if(IsPerfect(j) == 1){
            cout  <<  j << endl;
        }
    }
}

int IsPerfect(int a){
    int sum=0;
    for(int i; i<a; i++){
        if(a%i == 0){
            sum=sum+i;
        }
    }
    if(sum == a){
        return 1;
    }   
    else{
        return 0;
    }
}

代码与cout无关。查看 isPerfect 函数中的循环。变量 i 具有未定义的值,因为它未被初始化。像这样初始化它:

for(int i = 1; i<a; i++){