C语言循环结构

本文介绍了循环结构的两种类型——当到型和直到型,并通过while和for循环举例说明。同时,讲解了break、continue和goto等跳转语句的用法。接着,通过两个经典编程问题来实践循环应用:一是解决100钱买100只鸡(公鸡、母鸡、小鸡)的组合问题,二是实现斐波那契数列的计算。示例代码分别使用穷举法和循环迭代求解,帮助读者理解循环控制和递归概念。
摘要由CSDN通过智能技术生成

循环结构

循环分为两种

  1. 当到型:条件成立时再执行循环体
  2. 直到型:先执行循环体,再检验条件是否成立

当到型

while循环
while(条件)
{
循环体;
}

语法: ①判断条件->执行循环

为了控制循环,循环体中 往往需要 或者 条件中 需要 做 自增运算

for循环
for(初始循环变量; 条件; 循环改变) // 死循环:括号内啥也不写
{
循环体
}

语法:初始化->判断条件->执行循环体->改变循环变量->重新判断条件直到条件不成立 停止循环

ps:for 循环中 不应再写入循环变量,防止死循环。

直到型

do while 循环

do{

循环体

}while(条件);

跳转语句

break

只能在 switch 或 循环 使用

作用:跳出 该层循环! 在多层嵌套循环时注意

continue

只能在 循环 使用

作用:结束本次循环,直接开始下一次循环

goto

只能在当前函数使用

作用:无条件跳转,需要对应的跳转标签

退出 多层 嵌套 一步到位

编程题目

1.经典问题 白鸡白钱

一只公鸡cock值五钱,一只母鸡hen值三钱,三只小鸡(chick)值一钱
100钱,买100只鸡,请问公鸡,母鸡,小鸡各多少只?
全买公鸡:20只
全买母鸡:33只
全买小鸡: 100只

#include <stdio.h>  //穷举
int main()
{
	int cock = 0;

	int hen = 0;

	int chick = 0;

	for (cock=0; cock < 20; cock++)
		for (hen=0; hen <= 33; hen <= 33 < hen++)
			for (chick=3; chick <= 100; chick++)
				if ((cock * 5 + hen * 3 + chick /3) <= 100)
					if (cock + hen + chick == 100)
						if (chick % 3 == 0)
							printf("公鸡=%d 母鸡=%d 小鸡=%d \n", cock, hen, chick);

				
	return 0;
}

2.经典问题 斐波拉契数列

1 1 2 3 5 8 13 …

f(n)=1 n<=2

f(n) = f(n-1)+f(n-2)

用户输入n 求出f(n)的值:

#include <stdio.h>
int main()
{
	int n = 0;

	int num1 = 0; //第一位置 

	int num2 = 1; //第二个位置

	int sum = 0;

	puts("输入 n ");

	scanf_s("%d", &n);

	if (n <= 2)
	{
		for (int i = 0; i <= n-1; i++)
		{
			puts("1");
		}
	}
	else
	{
		for (int i = 0; i < n-1; i++)
		{
			sum = num1 + num2;
			num1 = num2;
			num2 = sum;
		}
		printf("%d", sum);
	}
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值