<分区>
我必须编写一个函数来获取一个数字,并打印所有小于给定数字的完美数字。如果没有,该函数将打印一条适当的消息。 我刚刚编写的程序编译得很好,但它只工作了一部分。例如,如果输入数字是 5,出于某种原因,我没有收到任何消息,表明此范围内没有完美数字 (=until 5)。
有人可以向我解释一下这个程序有什么问题吗? 如果有任何帮助,我将不胜感激!
#include<iostream>
using namespace std;
void check (int num, int & j);
void main()
{
int num,j, count;
cout << "List all the perfect numbers less than: ";
cin >> num;
check (num, j);
}
void check (int num, int & j)
{
int i,sum, count=0;
for(j=2;j<num;num++)
{
sum=0;
for(i=1;i<j;i++)
{
if(j%i == 0)
sum += i;
}
if(sum == j)
{cout << j <<endl;
count+=1;
}
}
if (count==0)
cout<<"there are no perfect numbers"<<endl;
}