编写程序,求完数。程序运行时输入一个正整数n(n在10到999之间),输出1到n之间的完数(包含 n)。c语言

#include
int main()
{
int n,i;
int m=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(int j=1;j
{
if(i%j==0)
m=m+j;}
if(m==i)
printf("%d",m);
}
return 0;
}
运行不出来,哪错了?

在第二个for前面加上 m=0; 否则m的值一直累加了,还有最后的printf输出加上 \n 或者空格,将多个数字分开显示

#include<stdio.h>

int main()
{
    int n,i;
    int m=0;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        m = 0;
        for(int j=1;j<i;j++)
        {
            if(i%j==0)
                m=m+j;
        }
        if(m==i)
            printf("%d\n",m);
    }
    return 0;
}