C语言课后习题,求1000以内的完数,按以下格式输出: 6 its factors are 1,2,3
为什么我改成和答案一样的都输出空.,
代码如下:#include
int main()
{
int m,i,s;
for(m=2;m<1000;m++)//2-1000个数
{
s=0;
for(i=1;i<=m;i++)
if((m%i)==0)s=s+i;
if(s==m)
{
printf("%d,its factors are",m);
for(i=1;i<m;i++)
if(m%i==0) printf("%d",i);
printf("\n");
}
}
return 0;
}
运行截图如下:
if((m%i)==0)s=s+i;
if(s==m)
{
printf("%d,its factors are",m);
for(i=1;i<m;i++)
if(m%i==0) printf("%d",i);
printf("\n");
}
次代码用{}裹起来
貌似你的include语句不完整哦
if((m%i)==0)s=s+i;
if(s==m)
{
printf("%d,its factors are",m);
for(i=1;i<m;i++)
if(m%i==0) printf("%d",i);
printf("\n");
}
这儿错了:
for(i=1;i<=m;i++)
if((m%i)==0)s=s+i;
应为:
for(i=1;i<m;i++)
if((m%i)==0)s=s+i;
完数不包括自身。
请注意if的大括号分层