c语言素数题中,for循环的疑问

2024-11-27 14:45:08
推荐回答(5个)
回答(1):

for(j=2;j看来你是对FOR循环里的(初始化>;<条件表达式>;<增量>) ,他们之间的执行的顺序不清楚,简单说就是第一步先赋初值;第二步判断条件表达式;第三部执行FOR循环体内语句;第四步进行增量变化;
也就是说当j=m-1时,执行if(m%j==0)break;然后此时j就开始自加=m;
当你修改为for((j=2;j<=m;j++),执行if(m%j==0)break;(这个break是跳出for((j=2;j<=m;j++)这个循环体)语句后,此时j=m+1;就不会执行后面的if语句了,所以结果没变化!
明白了吧~~~~~~~~~~~~~~~~~~~~~~!

回答(2):

for(m=800;m>500;m--)//这里是第一个循环开始
{
for(j=2;j if(m%j==0)break;//第二个循环结束能满足这个条件说明不是素数, 这里是不能=m的;
if(m==j)//循环后, 当j==m的时候. 就是你要找的素数;
{
cnt++;
sum+=k*m;
k=-1*k;
}
}//第一个循环结束

回答(3):

这句for(j=2;j所以只有 if(m%j==0)break;才在这个循环内
把格式整理下你应该就明白了吧!
for(j=2;j if(m%j==0)
break;
if(m==j)

回答(4):

“此时j等于m,再判断j
看你自己的这句话,此时j等于m,那么m怎么可能等于j呢? 前后矛盾

判断j

回答(5):

for(j=2;j