
C语言中如何用break语句退出多重循环
例如把这题用break语句退出#include<stdio.h>#include<math.h>voidgede(longk);longsushu(longc);void...
例如把这题用break语句退出#include<stdio.h>
#include<math.h>
void gede(long k);
long sushu(long c);
void main()
{long k;
printf("请输入一个大偶数:");
scanf("%d",&k);
gede(k);}
void gede(long k)
{long i,j;
for(i=1;i<k;i++)
for(j=1;j<k;j++)
if(i+j==k&&sushu(i)&&sushu(j))goto bottom;
bottom:printf("两个素数为%d和%d\n",i,j);}
long sushu(long c)
{int a;double b;
b=sqrt(c);
for(a=2;a<=b;a++)
if(c%a==0)return 0;
if(a>b)return 1;} 展开
#include<math.h>
void gede(long k);
long sushu(long c);
void main()
{long k;
printf("请输入一个大偶数:");
scanf("%d",&k);
gede(k);}
void gede(long k)
{long i,j;
for(i=1;i<k;i++)
for(j=1;j<k;j++)
if(i+j==k&&sushu(i)&&sushu(j))goto bottom;
bottom:printf("两个素数为%d和%d\n",i,j);}
long sushu(long c)
{int a;double b;
b=sqrt(c);
for(a=2;a<=b;a++)
if(c%a==0)return 0;
if(a>b)return 1;} 展开
9个回答
展开全部
//这个题最好用return,为了符合你的要求,还是用了两个break实现。
//注意1不是是素数。
#include<stdio.h>
#include<math.h>
void gede(long k);
long sushu(long c);
void main()
{long k;
printf("请输入一个大偶数:");
scanf("%d",&k);
gede(k);}
void gede(long k)
{
long i,j;
for(i=1;i<k;i++)
{
for(j=1;j<k;j++)
if(i+j==k&&sushu(i)&&sushu(j))
{
printf("两个素数为%d和%d\n",i,j);
break;//退出内循环。当然这儿最好是用retun;直接返回,后面的if(j<k)break;也不要了!
}
if(j<k)break;//退出外循环!
}
}
long sushu(long c)
{
int a;double b;
if(c<2)return 0;//加这行,因为1不是素数!
b=sqrt((double)c);
for(a=2;a<=b;a++)
if(c%a==0)return 0;
if(a>b)return 1;
}
//注意1不是是素数。
#include<stdio.h>
#include<math.h>
void gede(long k);
long sushu(long c);
void main()
{long k;
printf("请输入一个大偶数:");
scanf("%d",&k);
gede(k);}
void gede(long k)
{
long i,j;
for(i=1;i<k;i++)
{
for(j=1;j<k;j++)
if(i+j==k&&sushu(i)&&sushu(j))
{
printf("两个素数为%d和%d\n",i,j);
break;//退出内循环。当然这儿最好是用retun;直接返回,后面的if(j<k)break;也不要了!
}
if(j<k)break;//退出外循环!
}
}
long sushu(long c)
{
int a;double b;
if(c<2)return 0;//加这行,因为1不是素数!
b=sqrt((double)c);
for(a=2;a<=b;a++)
if(c%a==0)return 0;
if(a>b)return 1;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C语言中break语句只能跳出它所处的那一层循环。
要跳出多重循环,必须使用多个 break。
要跳出多重循环,必须使用多个 break。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在这个循环里面加break
for(i=1;i<k;i++)
for(j=1;j<k;j++)
if(i+j==k&&sushu(i)&&sushu(j))
{
goto bottom;
break;
}
bottom:printf("两个素数为%d和%d\n",i,j);}
不过加不加都会执行bottom的,你程序要改改了
for(i=1;i<k;i++)
for(j=1;j<k;j++)
if(i+j==k&&sushu(i)&&sushu(j))
{
goto bottom;
break;
}
bottom:printf("两个素数为%d和%d\n",i,j);}
不过加不加都会执行bottom的,你程序要改改了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
跳出调用函数的话不要用break比较好吧,一层层跳出很蛋疼容易错啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询