C语言·循环语句之while(DAY10)

一、循环的用途

使用到循环的应用场景:生活中,常常遇到需要重复处理的问题:如求30个整数的和,检查50个学生的成绩是否及格等,解决这些问题需要重复执行n个程序段才可以完成,而循环结构正可以解决这些问题。

循环语句:用于重复执行某条语句(循环体)的语句,

循环语句的三大特点:

①循环变量的初始化;

②循环终止条件;

③循环变量的变化。

C语言中的循环语句,共有四种:while 、do…while、for、goto。

二、while循环概述

while语句的一般形式:

while(表达式){

循环体语句;

}

while语句的运行工程:先判断表达式的值,表达式的值只有“真”和“假”两种值,若为真,则执行循环体语句;若为假,则不执行循环体语句。

可以这么简单地理解:只要当循环条件为真(即给定的条件成立),就执行循环体语句。

三、while的经典例子

理解知识就从最经典的例子开始学习,开始解剖式的学习吧!

【经典】求1+2+3+…+100 = ?

解决思路:这是一个累加的问题,分析累加的规律,每次累加的数都是前一个数加1,所以只需要上一个数i加1,便可得到下一个数,用while语句进行累加即可完成。

大致思路清晰,开干!

#include <stdio.h>
int main()
{
	int i = 1, sum = 0;
	while(i <= 100){
	sum = sum + i;
	i ++;	
	}
	printf("sum=%d\n", sum);

	return 0;
}

运行结果:

注意事项:

①不要忽视给循环变量i,sum赋初值,否则i,sum的初始值会被随机赋值,

②不能缺少了循环的结束条件,即i<=100;

③不能缺少了循环变量的变化,即循环变量i自增(i++)。

这三点也正好对应了文章开头所讲的循环三大特点。

四、while语句的例题

1.输入两个正整数m和n,求其最大公约数和最小公倍数。

辗转相除法

举个具体的例子,输入49,35;

49 % 35 = 1……14

35 % 14 = 2……7

14 % 7 = 0

而7正是49和35的最大公约数;

##include <stdio.h>

int main()
{
	int n, m, r, p, temp;
	printf("Please input n,m:\n");
	scanf("%d%d", &n, &m);

	if(m > n)
	{
		temp = n;
		n = m;
		m = temp;
	}
	p = m * n;
	while(m != 0){
		
		r = n % m;
		n = m;
		m = r;
	}
	printf("最大公约数%d\n",n);
	printf("最小公倍数%d\n",p/n);
	return 0;
}

运行结果:

分析:先把n作为大数,m作为小数,若m大于n,这=则对调位置;n 对 m取余,将 n % m  得到的余数作为下一次运算的小数m,而m作为n下一次运算的大数,经过循环,从而得到m=0时,停止循环。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值