
这个程序哪里出了问题?
#include<stdio.h>intmain(){inti,j,k,n=6,a=0,b=0,last,l,c=0;for(i=1;i<=48;i++){for(j=2...
#include<stdio.h>
int main(){
int i,j,k,n=6,a=0,b=0,last,l,c=0;
for(i=1;i<=48;i++){
for(j=2;j<=n-2;j++){
for(k=2;k<=j;k++){
if(j%k==0)
a=a+1;
}
if(a>1)
continue;
last=n-j;
for(l=2;l<=last;l++){
if(last%l==0)
c=c+1;
}
if(c>1)
continue;
printf("%d=%d+%d\n",n,j,last);
break;
}
n++;
}
return 0;
}
break结束后不是结束内循环,开始外循环么? 展开
int main(){
int i,j,k,n=6,a=0,b=0,last,l,c=0;
for(i=1;i<=48;i++){
for(j=2;j<=n-2;j++){
for(k=2;k<=j;k++){
if(j%k==0)
a=a+1;
}
if(a>1)
continue;
last=n-j;
for(l=2;l<=last;l++){
if(last%l==0)
c=c+1;
}
if(c>1)
continue;
printf("%d=%d+%d\n",n,j,last);
break;
}
n++;
}
return 0;
}
break结束后不是结束内循环,开始外循环么? 展开
展开全部
嗯,break,是结束循环的,但是你的continue和break在同一个语句块中,也就是,当条件if(c>1)这个条件满足的话,执行continue,当执行这个语句时,就直接跳转执行下一个循环了,而不会在执行continue紧挨的在同一个语块的后面语句的,也就是说它不会执行后面的printf,所以说更不执行break这个结束语句了
更多追问追答
追问
额 ,这我知道,但是当c<=1时,不执行continue语句,执行break语句后,结束内循环,但是为什么外循环也结束了?
追答
?输出的结果是什么
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询