c的for循环(二)
记住CPR的口诀:C(胸压)-A(人工呼吸)-R(循环) #生活技巧# #紧急应对技巧# #心肺复苏教程#
参考这一篇博文,c的for循环,基于这篇博文继续对程序改动
1,列出前50个素数#include <stdio.h> int main() {int x;int cnt = 0;x = 1;while ( cnt <50 ) {int i;int isPrime = 1;//x是素数for ( i=2; i<x; i++ ) {if ( x % i == 0 ) {isPrime = 0;break; //判断这个数是不是素数,是的话跳出for循环}}if ( isPrime == 1 ) {cnt ++; //个数自加printf("%d\t", x); //输出这个素数,\t表示对齐if ( cnt %5 == 0 ) {printf("\n"); //表示每5个数进行换行}}x++;}return 0; }
12345678910111213141516171819202122232425262728看下运行结果 :
例:用1毛,2毛,5毛组合出输入的金额,
第一个,后续会优化
多个for循环嵌套,先由1毛循环,在循环里嵌套就可以实现这种列举问题,
#include <stdio.h> int main() {int a=1; //一毛int b=2; //俩毛int c=5; //五毛int x; //输入金额scanf("%d",&x);int mon = x*10;//对前面的金额都扩大了10倍,该处也*10for(a=1;a<mon*10;a++){for(b=2;b<mon*10;b++){for(c=5;c<mon*10;c++){if(a+b*2+c*5==mon){printf("%d个1毛,%d个俩毛,%d个五毛,可以凑出%d元 \n",a,b,c,x);}}}}return 0; }
123456789101112131415161718192021看下运行结果
而在实际生活当中,我们往往只需要一种结果即可,代码如下:(我们只需要在每一层循环后面加上break跳出,而使得break跳出的条件是什么呢?定义一个变量exit,在有一种方法时改变exit的值,再在每一层的for循环中插入if判断exit的值,决定是否break)
#include <stdio.h> int main() {int a=1; //一毛int b=2; //俩毛int c=5; //五毛int x; //输入金额int exit = 0;scanf("%d",&x);int mon = x*10;//对前面的金额都扩大了10倍,该处也*10for(a=1; a<mon*10; a++) {for(b=2; b<mon*10; b++) {for(c=5; c<mon*10; c++) {if(a+b*2+c*5==mon) {printf("%d个1毛,%d个俩毛,%d个五毛,可以凑出%d元 \n",a,b,c,x);exit = 1;break;}}if(exit==1) {break;}}if(exit==1) {break;}}return 0; }
12345678910111213141516171819202122232425262728看下结果:
针对于上面的break跳出还有一种方法,goto
goto name
name :
#include <stdio.h> int main() {int a=1; //一毛int b=2; //俩毛int c=5; //五毛int x; //输入金额scanf("%d",&x);int mon = x*10;//对前面的金额都扩大了10倍,该处也*10for(a=1; a<mon*10; a++) {for(b=2; b<mon*10; b++) {for(c=5; c<mon*10; c++) {if(a+b*2+c*5==mon) {printf("%d个1毛,%d个俩毛,%d个五毛,可以凑出%d元 \n",a,b,c,x);goto out;}}}}out:return 0; }
12345678910111213141516171819202122结果:
网址:c的for循环(二) https://www.yuejiaxmz.com/news/view/438108
相关内容
Matlab的for循环优化matlab中for循环的简单使用
matlab 中for循环的使用
python 循环结构(for
C++循环嵌套
C++循环语句——习题2
Python 循环讲解/从while到for循环(以求解S=1+2+3+……+n为例)
分治法解决循环赛日程表安排问题(C++)
语言C++之循环结构
用c语言实现旅行商问题的c