一、break
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,n;
for(i = 1; ;i++)
{
if(i%5==1&& i%6==5 && i%7==4 && i%11==10)
{
printf("i=%d\n",i);
break;
}
}
return 0;
}
二、使用标志变量,使可读性更好
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,n;
int x=0;
for(i = 1;!x;i++)
{
if(i%5==1&& i%6==5 && i%7==4 && i%11==10)
{
printf("i=%d\n",i);
x = 1;
}
}
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i=0;
do{
i++;
}
while(!(i%5==1&& i%6==5 && i%7==4 && i%11==10));
printf("i=%d\n",i);
return 0;
}
三、goto指向型语句,直接指向结尾处
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i;
for(i=1; ;i++)
{
if(i%5==1 && i%6==5 && i%7==4 && i%11==10)
{
printf("i = %d\n", i);
goto END;
}
}
END: ;
return 0;
}
四、exit(0) 执行强制返回操作,其参数为0时表示程序正常退出,非0时表示程序出现错误后退出。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i;
for(i=1; ;i++)
{
if(i%5==1 && i%6==5 && i%7==4 && i%11==10)
{
printf("i = %d\n", i);
exit(0);
}
}
return 0;
}
若无上限,则会陷入死循环
break 循环立刻终止,从循环语句后的第一条语句开始执行
continue 中断此次循环,开始下次循环
鸡兔同笼问题穷举法求解:
通俗解:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int x , y;
for(x=1;x<=98;x++)
{
for(y=1;y<=98;y++)
{if(x+y==98 && x+2*y==193)
{printf("鸡有:%d 兔子有:%d\n", x, y);
}
}
}
return 0;
}
优化解:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int x , y;
for(x=1;x<=98;x++)
{
y = 98-x;
if(x+2*y==193)
{printf("鸡有:%d 兔子有:%d\n", x, y);
}
}
return 0;
}
本文介绍了C语言中不同类型的循环控制,包括break、使用标志变量、goto和exit(0),并结合鸡兔同笼问题展示了如何通过循环解决实际问题。文章通过两种方法展示了穷举法求解鸡兔同笼问题,优化了解决方案的效率。

2万+

被折叠的 条评论
为什么被折叠?



