第1个回答 推荐于2017-11-26
简单的设个人工标志位吧。
#include "stdio.h"
#include "math.h"
int main(void)
{
int i,k;
char aaa=0;
float j;
for ( i = 100; i <= 200; i++)
{
j = sqrt(i);
for ( k=2; k <= j; k++)
{
if (i % k == 0)
{
aaa=1;//要break之前,把标志位置1.
break;
}
}
if(aaa==1)//如果标志位等于1,说明已经经历过break了。
{
aaa=0;//把标志位清零,为下一次做准备
continue;//这是你的要求,break以后就continue
}
printf("%d " , i );
}
return 0;
}本回答被提问者采纳
第2个回答 2013-09-22
有两个办法:
1、使用goto语句。但是不推荐使用
2、设置一个标志flag,
#include "stdio.h"
#include "math.h"
int main(void)
{
int i,k;
float j;
int flag = 0;
for ( i = 100; i <= 200; i++)
{
j = sqrt(i);
flag = 0; //每次进入第二个for循环之前初始化flag = 0;
for ( k=2; k <= j; k++)
{
if (i % k == 0)
{
flag = 1; //为1表示退出第二个for循环并且在printf之前continue
break;
}
}
if(flag == 1) continue;//判断是否continue
printf("%d " , i );
}
return 0;
}
第3个回答 2013-09-22
#include "stdio.h"
#include "math.h"
int main(void)
{
int i,k;
int flag = 0; //增加一个标志变量
float j;
for ( i = 100; i <= 200; i++)
{
j = sqrt(i);
for ( k=2; k <= j; k++)
{
if (i % k == 0)
{
flag = 1;
break;
}
flag = 0;
}
//标志为真则continue
if(flag) continue;
printf("%d " , i );
}
return 0;
}
第4个回答 2013-09-22
#include "stdio.h"
#include "math.h"
int main(void)
{
int i,k;
float j;
for ( i = 100; i <= 200; i++)
{
j = sqrt(i);
for ( k=2; k <= j; k++)
{
if (i % k == 0)
{
break;
}
}
if (k>j) printf("%d " , i ); //增加条件判断,跳过printf
}
return 0;
}