输出完数报错,代码框架没问题,是思路问题吗


#include
using namespace std;

void sum(int x)
{
    int a=0;
   for(int i=1;ifor(int j=1;jif(i%j==0)
        {
          a=a+j;
        }   
    };
    if(i=a)
    cout<int main()
{
    void sum(int x);
    sum(100);
    system("pause");
    return 0;
}

1d returned 1 exit status

能帮我看看吗

第17行,if(i=a) 这里少了‘=’,应改为:if(i == a)。另 a 的值需每次复位,修改如下,供参考:

#include<iostream>
using namespace std;
void sum(int x)
{
    int a = 0;
    for (int i = 1; i < x; i++)
    {
        a = 0; //修改,i 每循环自增一次,a 需复位为 0 。
        for (int j = 1; j < i; j++)
        {
            if (i % j == 0)
            {
                a = a + j;
            }
        };
        if (i == a) //if(i=a) 修改
            cout << i << endl;
    }
}
int main()
{
    void sum(int x);
    sum(100);
    system("pause");
    return 0;
}