for循环嵌套里怎么用if语句控制外循环?
intSu(intx)//想用这个函数求比x小的离x最近的素数{inti,j;for(i=x;i>=2;i--){for(j=2;j<=i/2;j++)if(i%j==0...
int Su(int x) //想用这个函数求比x小的离x最近的素数
{
int i,j;
for(i=x;i>=2;i--)
{
for(j=2;j<=i/2;j++)
if(i%j==0) {break; continue;} //想在这个条件满足后结束内循环,继续执行外循环
if(j>i/2) {break;
return x;break;}//想在这个条件满足后结束内循环,返回x,并结束外循环.
}
}
\\编译后出来无数行 error: stray '\161' in program ,感觉应该是控制循环语句不对.请问怎么修改呢 展开
{
int i,j;
for(i=x;i>=2;i--)
{
for(j=2;j<=i/2;j++)
if(i%j==0) {break; continue;} //想在这个条件满足后结束内循环,继续执行外循环
if(j>i/2) {break;
return x;break;}//想在这个条件满足后结束内循环,返回x,并结束外循环.
}
}
\\编译后出来无数行 error: stray '\161' in program ,感觉应该是控制循环语句不对.请问怎么修改呢 展开
6个回答
展开全部
修改如下
int Su(int x)
{
int i,j;
for(i=x;i>=2;i--)
{
for(j=2;j<=i/2;j++)
{
if(i%j==0) {break;} //若能整除任何一个数,说明非素数,跳出内循环,检查下一个i
}
if(j>i/2) {return i;} //放到内循环之后而不是之内,检查j值,如果满足条件说明i是素数,返回i
}
}
int Su(int x)
{
int i,j;
for(i=x;i>=2;i--)
{
for(j=2;j<=i/2;j++)
{
if(i%j==0) {break;} //若能整除任何一个数,说明非素数,跳出内循环,检查下一个i
}
if(j>i/2) {return i;} //放到内循环之后而不是之内,检查j值,如果满足条件说明i是素数,返回i
}
}
追问
我编译器不会出毛病了吧,怎么编译你的还是error: stray '\161' in program|
追答
如果代码中含有全角标点的话,就会这样。可能是全角的Tab。
检查你的标点。别在中文输入法下输入标点。
展开全部
int Su(int x) //想用这个函数求比x小的离x最近的素数
{
int i,j;
for(i=x;i>=2;i--)
{
for(j=2;j<=i/2;j++)
if(i%j==0) {break;} //想在这个条件满足后结束内循环,继续执行外循环
if(j>i/2) {break;}//想在这个条件满足后结束内循环,返回x,并结束外循环.
}
return x;
}
{
int i,j;
for(i=x;i>=2;i--)
{
for(j=2;j<=i/2;j++)
if(i%j==0) {break;} //想在这个条件满足后结束内循环,继续执行外循环
if(j>i/2) {break;}//想在这个条件满足后结束内循环,返回x,并结束外循环.
}
return x;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
break是结束这个循环,continue是结束本次循环进行下次循环。你理解一下然后就可以修改代码了,不难。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-08-08
展开全部
把条件放在要循环的语句前好不好。。。。条件不成立跳过这个循环就行了
给i、j初始化,然后
for(i=x;i>=2;i--) {
if(i%j==0) break;
if (j>i/2) {
for(j=2;j<=i/2;j++) return x;
}
break;
}
给i、j初始化,然后
for(i=x;i>=2;i--) {
if(i%j==0) break;
if (j>i/2) {
for(j=2;j<=i/2;j++) return x;
}
break;
}
追问
j是嵌套循环里的变量啊,你怎么拿出来先判断条件了....
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
给你稍微给了下,你看下行不行;
int Su(int x)
{
int i,j;
for(i=x;i>=2;i--)
{
for(j=2;j<=i/2;j++)
if(i%j==0) continue;
if(j>i/2)
{
return x;
break;}
}
}
int Su(int x)
{
int i,j;
for(i=x;i>=2;i--)
{
for(j=2;j<=i/2;j++)
if(i%j==0) continue;
if(j>i/2)
{
return x;
break;}
}
}
追问
编译了一下,还是原来的那错误;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询