C语言学习(五)循环 上

本文深入讲解while与dowhile循环的应用,通过计数倒数、猜数游戏、计算平均数及整数逆序输出等实例,详细解析循环在算法中的作用及其实现方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

很多时候我们需要对算法进行重复,如果使用if语句会很繁琐,这时就需要用到循环对算法进行简化。本次学习主要内容是while与do while循环并完成关于循环应用的一些例题。

1.while循环

while(判断)
{
循环体语句
}
在这里插入图片描述

当条件满足的时候,不断重复循环体的语句,如果条件不成立,就可能一次都不执行循环体语句。

2. do while循环

do
{
循环体语句
}while(判断)

在这里插入图片描述

先执行完一次循环体语句,再进行判断,如果满足条件继续循环,不满足条件则执行后续语句。

3.循环应用实例

例1:计数循环


#include<stdio.h>

int main()
{
	int count=10;

	while(count>=0)
	{
		printf("%d ",count);
		count --;
	}

	printf("发射!\n");

	return 0;
}

运行结果:
在这里插入图片描述
例2:猜数游戏
算法分析:
① 计算机随便想一个数,记在变量number中
② 有一个负责计次数的变量count
③ 用户输入一个数字a
④ 判断a与number的大小,对用户进行提示
⑤ 不相等则循环③④,相等则结束猜数。

代码分析:
① 要产生一个1到100的随机整数,需要的代码是:
srand(time(0));
int number=rand()%100+1;
并且需要添加头文件:
#include<stdlib.h>
#include<time.h>
② 要实现算法,至少要进行一次猜数,也就是这里需要使用的是do while循环。

完整代码如下:


#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int main()
{	
	int number=0;    
    int count = 0;
	int a=0;

	srand(time(0));
	number=rand()%100+1;

	printf("我已经想好一个1到100之间的数了");

	do
	{
		printf("请猜一下这个数是:");
		scanf("%d",&a);
		count++;
		if(a>number)
			printf("你猜的数太大了");
		else if(a<number)
			printf("你猜的数太小了");
	}while(a!=number);

	printf("恭喜你猜对了!");

	return 0;
}

例3:计算平均数
程序需要读入一系列的正整数,最后输入-1表示输入结束,然后程序计算这些输入的值得平均数,输出输入数字的个数以及平均数

算法分析:
① 这里不需要记下所有的数,只需要用一个变量sum进行求和
② 另外需要一个变量count进行计算
③ 平均数计算只需要用sum除以count既可
④ 需要一个循环进行输入的判断以及求和、计数等

代码实现:


#include<stdio.h>

int main()
{
	int number;
	int sum=0;
	int count=0;

	scanf("%d",&number);
	while(number!=-1)
	{
		sum +=number;
		count ++;
		scanf("%d",&number);
	}

	printf("%f\n",1.0*sum/count);

	return 0;
}

例4:整数的逆序

算法分析:
①将一个整数分解为各个位数的数字:
对一个整数进行%10操作,得到个位数;
对一个整数进行/10操作,就去掉了个位数;
对上面的结果进行%10操作,就得到十位数……

②按照相反的位序输出各个位数的值,也就是依次得到个位进行输出,得到十位进行输出,得到百位进行输出……

代码实现如下:


#include<stdio.h>

int main()
{
	int x;
	int digit;
	int ret=0;

	scanf("%d",&x);
	while(x>0)
	{
		digit = x%10;
		printf("%d",digit);
		x/=10;
	}
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值