c语言为什么输出没结果?

#include<stdio.h>
int main()
{
int a,b,i,j,s=0;
scanf("%d%d",&a,&b);
for(i=a;i<=b;i++)
{
for(j=1;j<i;j++)
{
if(i%j==0)
{
s=s+j;
}
}
if(i==s)
{
printf("%d\n",i);
}
}
return 0;
}

应该在每一次内层循环结束之后,为s赋初值0,
源代码如下

#include<stdio.h>
int main()
{
int a,b,i,j,s;
scanf("%d%d",&a,&b);
for(i=a;i<=b;i++)
{
s=0;
for(j=1;j<i/2;j++)
{
if(i%j==0)
{
s=s+j;
}
}
if(i==s)
printf("%d\n",s);
}
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-10-22
for(i=a;i<=b;i++)起始条件i=0,b=0满足i<=b,循环终止,所以后面循环中的的for、if都没有执行
相似回答