这两个 为什么运行后不一样呢
来源:百度知道 编辑:UC知道 时间:2024/06/19 03:35:05
int fun(int mm,int b[MAX])
{int k=0,i,j;
for(i=mm;i>1;i--)
{
for(j=2;j<i;j++)
if(i%j!=0)
{b[k]=i;
k++;}
}
return k;
}
int fun(int mm,int b[MAX])
int k=0,i,j;
for(i=mm;i>1;i--)
{for(j=2;j<i;j++)
if(i%j==0)
break;
else
continue;
if(j>=i)
{b[k]=i;
k++;}
}
return k++;
求出小于或等于mm的所有素数,放在b数组中,该函数返回所求出的素数个数
运行后的值为什么不一样呢?帮帮我!谢谢大家
{int k=0,i,j;
for(i=mm;i>1;i--)
{
for(j=2;j<i;j++)
if(i%j!=0)
{b[k]=i;
k++;}
}
return k;
}
int fun(int mm,int b[MAX])
int k=0,i,j;
for(i=mm;i>1;i--)
{for(j=2;j<i;j++)
if(i%j==0)
break;
else
continue;
if(j>=i)
{b[k]=i;
k++;}
}
return k++;
求出小于或等于mm的所有素数,放在b数组中,该函数返回所求出的素数个数
运行后的值为什么不一样呢?帮帮我!谢谢大家
本来就不一样
for(j=2;j<i;j++)
if(i%j!=0)
{b[k]=i;
k++;}
下面这个 第一次i%j ==0 时 就跳出了循环
而上面哪个要计算所有j小于i的数
for(j=2;j<i;j++)
if(i%j==0)
break;
else
continue;
比如当i=5时,假设k=0;
第一个会计算出 b[0] = 5; b[1] = 5; b[2] = 5;
而第而个计算出 b[0] = 5;
把你程序的目的说出来
大家回很快看明白你的程序
不要浪费大家的时间
就你的函数目的而言,第一个是错的,第二个是正确的。
逻辑关系的问题,自己好好想想就明白了。