关于韩信点兵以及对break和continue的总结

相传韩信才智过人,从不直接清点自己军队的人数,只要让士兵先后以三人一排、五人一排、七人一排地变换队形,而他每次只掠一眼队伍的排尾就知道总人数了。输入3个非负整数a,b,c ,表示每种队形排尾的人数(a<3,b<5,c<7),输出总人数的最小值(或报告无解)。已知总人数不小于10,不超过100 。
————————————————
版权声明:本文为CSDN博主「学着改变」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43692144/article/details/84836399

#include<stdio.h>
int main()
{
	int a,b,c,m;
	printf("请输入三个非负整数a,b,,c(a<3,b<5,c<7):");
	scanf("%d%d%d",&a,&b,&c);
	for(m=10;m<=100;m++)
	{if((m%3==a)&&(m%5==b)&&(m%7==c))
		{	printf("士兵的总人数为:%d",m);
		    break;}//但凡遇到一个满足条件的数字就直接输出,也就是说求的是最小值
		if(m==100)
			printf("无解!");
	}
	return 0;

}

还有一个点就是:如果某一个数字不满足第一个if的条件,那么他只是不再执行该if后面的语句,并不会因此跳出for循环,唯一可以控制跳出for循环的只有m<=100这一个条件。

输入1,2,3,输出52;

输入2,4,6,输出无解。

总结break和continue:

for语句中的break与continue

#include <stdio.h>
int main()
{
 int i = 0;
 for(i=1; i<=10; i++)
 {
 if(i == 5)
 break;
 printf("%d ",i);
 }
 return 0; }

输出1234

在这里我总是反应不太过来,如果不清楚的话,就想想continue,是continue的话,当等于5时,程序不会再执行后边的部分,而是直接到了i++,然后再进入判断语句,依次循环。而break就恰恰相反,直接跳出循环,到了return 0了。

#include <stdio.h>
int main()
{
 int i = 0;
 for(i=1; i<=10; i++)
 {
 if(i == 5)
 continue;
 printf("%d ",i);
 }
 return 0; }

所以以上代码输出为1234678910

while语句中的break和continue

#include <stdio.h>
int main()
{
 int i = 1;
 while(i<=10)
 {
 if(i == 5)
 break;
 printf("%d ", i);
 i = i+1;
 }
 return 0; }

输出1234

其实在循环中只要遇到 break ,就停止后期的所有的循环,直接终止循环。
所以: while 中的 break 是用于 永久 终止循环的。
#include <stdio.h>
int main()
{
 int i = 1;
 while(i<=10)
 {
 if(i == 5)
 continue;
 printf("%d ", i);
 i = i+1;
 }
 return 0; }

输出1234,但其实当i=5的时候程序陷入了死循环。

#include <stdio.h>
int main()
{
 int i = 1;
 while(i<=10)
 {
    i = i+1;
 if(i == 5)
 continue;
 printf("%d ", i);
 }
 return 0; }

输出结果为:1234678910,当i=5时,不再执行printf,而进入while的判断部分,即5<=10,进入循环执行i=i+1;这时候i已经变成6了,可以输出。

break语句结束循环,而continue就是结束本次循环,还会进行条件判断!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值