C语言的循环运算

来源:百度知道 编辑:UC知道 时间:2024/06/22 01:06:24
#include "stdio.h"
main()
{
int x,y,s=0;
for(x=2;x<1000;x++)
{
for(y=1;y<x;y++)
{
if(x%y==0)
{
s+=y;
if(x==s)
printf("%d\n",x);
}
}
}
}
这个是不是死循环

错误在哪里,望高手能指点.
以及正确的写法是什么.

这不是死循环的问题。
你的s只在变量定义时赋为0,它会一直累加下去,所以不会有满足条件的数字出现,应将s=0放到内循环里 for(y=1,s=0;y<x;y++)