多重循环的跳出

<1>引入模型:凑硬币

题目条件:用1角,两角,五角的硬币凑出10元金额:

(1)#include<stdio.h>

int main(){
int x;
int one,two,five;
scanf("%d",&x);
for(one=1;one<x10;one++){
for(two=1;two<x
10/2;two++){
for(five=1;five<x10/5;five++){
if(one+two
2+five5==x10){
printf("可以用%d个1角加%d个2角加%d个5角得到%d元\n",one,two,five,x);
}

		}
	}
}

return 0;

}
//第一种实例会罗列出多种可能,接下来改变要求,使其得出一种可能就结束运行。

  • 注意:在跳出循环嵌套中运用的continue和break只能对他所在的那层循环做,不能一下跳出所有循环;
    但我们也不能因此在每层循环后都加入break,(如果以这种情况直接加入break,无论以什么结果离开上一层循环,这个break都会让外面一层for循环被直接跳过)而是需要考虑满足某种情况时,一个break执行,接下来的break继续执行————所以此处我们应该引入if语句

(2)应用方法:接力break

#include<stdio.h>

int main(){
int x;
int exit;
int one,two,five;
scanf("%d",&x);
for(one=1;one<x10;one++){
for(two=1;two<x
10/2;two++){
for(five=1;five<x10/5;five++){
if(one+two
2+five5==x10){
printf("可以用%d个1角加%d个2角加%d个5角得到%d元\n",one,two,five,x);
exit=1;
break;
}

		}
	if (exit==1)break;
	}
if(exit==1)break;
}

return 0;

}

(3)应用方法:goto语句运用

#include<stdio.h>

int main(){
int x;
int one,two,five;
scanf("%d",&x);
for(one=1;one<x10;one++){
for(two=1;two<x
10/2;two++){
for(five=1;five<x10/5;five++){
if(one+two
2+five5==x10){
printf("可以用%d个1角加%d个2角加%d个5角得到%d元\n",one,two,five,x);
goto out;
}

		}
	}
}
out:
return 0;

}

* 在goto语句中,out后面的符号为

posted @   瑜阳  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程
点击右上角即可分享
微信分享提示