为何两段代码只因s=0位置的不同就导致一个有输出结果,一个没有。s=0定义在int中时没有结果,定义在第一个for循环中时有结果。
#include<iostream>
using namespace std;
int main()
{
int a,s,i,j;
cout<<"please enter the number:"<<endl;
for(i=1;i<1000;i++)
{
s=0;
for(j=1;j<i;j++)
if(i%j==0)
{
s=s+j;
}
if(s==i)
{
cout<<s<<"是完数:";
for(a=1;a<s;a++)
{
if(s%a==0)
cout<<a<<" ";
}cout<<endl;
}
}
return 0;
}
#include<iostream>
using namespace std;
int main()
{
int a,s=0,i,j;
cout<<"please enter the number:"<<endl;
for(i=1;i<1000;i++)
{
for(j=1;j<i;j++)
if(i%j==0)
{
s=s+j;
}
if(s==i)
{
cout<<s<<"是完数:";
for(a=1;a<s;a++)
{
if(s%a==0)
cout<<a<<" ";
}cout<<endl;
}
}
return 0;
}