C程序设计语言——五、循环结构程序设计(1)循环语句

这篇文章详细介绍了C语言中的三种主要循环语句:while、do...while和for,包括它们的概念、语法、使用示例以及区别。此外,还讨论了循环结构中的break和continue语句的作用,并提供了多个编程实例,如计算阶乘、输出数字位数、打印乘法表等,以帮助读者深入理解循环控制和程序设计。
摘要由CSDN通过智能技术生成

目录

一、循环语句——while语句

1、while语句

2、while语句例题:

二、循环语句——do …… while语句(直到型循环)

1、概念

2、do……while语句例题:

三、循环语句——for 循环语句

1、概念:

2、for 循环语句例题:

四、三种循环体的区别:

 五、循环结构例题

六、循环嵌套

2、执行过程

3、知识点:

七、break 和 continue 语句

1、break 语句

2、continue语句

八、循环结构例题

1、简单循环结构例题:

下节(循环结构综合例题)


一、循环语句——while语句

1、while语句

  1. 一般形式:先判断表达式,在执行循环体
  2. 注意:循环条件为真的时候执行循环语句,为假的时候跳出循环;

2、while语句例题:

  1. 《输出1——n之间的数》
  2. 《sum=1+2+3+……+100》必须初始化sum=0
    #include<stdio.h>
    int main()
    {
    	int i=1,sum=0;
    	while(i<=100)
    	{
    		sum=sum+i;
    		i++;
    	}
    /*
        while(1)
        {
            if(i>100) break;
            sum+=i;
            i++;
        }
    */
    	printf("sum= %d\n",sum);
    	return 0;
    }
  3. 《sum=1-2+3-4+……-100》
    //sum=1-2+3-4+……-100
    #include<stdio.h>
    int main()
    {
    	int i=1,sum=0,t=1;
    	while(i<=100)
    	{
    		sum=sum+t*i;
    		i++;
    		t=-t;
    	}
    	printf("sum= %d\n",sum);
    	return 0;
    }
  4. 《sum=1+1/2+1/3+……+1/100》注意:常量、表达式不能进行自增,自减,实数可以做自增、自减;整型、实型变量都可以自增自减
  5. 输出26个字母

二、循环语句——do …… while语句(直到型循环)

1、概念

  1. 一般形式:先执行循环体,后判断表达式
  2. 执行过程:
    1. 执行循环体的语句;
    2. 计算循环控制表达式的值,如果表达式为真,则返回1
    3. 如果表达式值为假,则退出循环,执行循环后面的语句
  3. while后有分号

2、do……while语句例题:

  1. sum=1+2+3+……+100
  2. 输出26个字母

三、循环语句——for 循环语句

1、概念:

  1. 一般形式:
  2. 表达式1:通常表示控制变量初始值
  3. 表达式2:循环条件
  4. 表达式3:改变控制变量的值
  5. 过程:
    1. 求解表达式1;
    2. 判断表达式2,2为真执行循环体语句,求解表达式3,判断表达式2;
    3. 2为假跳出循环

2、for 循环语句例题:

  1. 输入正整数n,计算并输出n! 》,注意:阶乘递推公式: i!= (-1) !* i         在C语言中表示:k = k*i   
  2. 输入正整数n,计算并输出1~n之间所有数的阶乘

四、三种循环体的区别:

1、循环次数已知,计数控制的循环,用for

2、循环次数未知,while 和 do……while


 五、循环结构例题

  1. 《输入一个整数,计算所含数字的位数》
    //输入一个整数,计算所含数字的位数
    #include<stdio.h>
    void main()
    {
    	int i,k=0;
    	printf("请输入一个整数:");
    	scanf("%d",&i);
    	do
    	{	i=i/10;
    		 k++;	//计数器
    	}while(i!=0);
    	printf("位数:%d\n",k);
    }
  2. ,《将一个正整数逆序输出》例如n=12345,输出5 4 3 2 1
    #include<stdio.h>
    void main()
    {
    	int x=12345,k;
    	do
    	{	k=x%10;
    		x=x/10;
    		printf("%3d",k);
    	}while(x!=0);
    }
  3. 《输入一个正整数n,输出n的逆序数》例如n=1234,则逆序数为4321
    #include<stdio.h>
    void main()
    {
    	int i=1234,k=0,x;
    	do
    	{	x=i%10;
    		i=i/10;
    		k=k*10+x;
    		
    	}while(i!=0);
    	printf("%3d\n",k);
    }

六、循环嵌套

1、类似

2、执行过程

  1. 外层循环执行一次,内层循环执行一圈

3、知识点:

  1. 嵌套的层次不能交叉
  2. 内外层嵌套循环变量不能重名,循环体内尽量可能不要用循环变量(内层不使用外层的变量
  3. 并列结构的循环可以用相同循环变量
  4. 多条语句要使用复合语句
  5. 循环非常占用系统资源,嵌套一般不超过3层
  6. 缩进格式保持层次清晰

七、break 和 continue 语句

1、break 语句

  1. 作用:用于switch结构和循环结构
  2. 《//求1+2+3+……+直到和值首次大于10000为止》
    //求1+2+3+……+直到和值首次大于10000为止
    #include<stdio.h>
    void main()
    {
    	int i=1,sum=0;
    	while(1)
    	{
    		sum = sum+i;
    		if(sum>10000) break;
    		i++;
    	}
    	printf("最后一个i=%d\n",i);
    	printf("sum=%d\n",sum);
    }

2、continue语句

  1.  作用:结束本次循环,开始下次循环

  2. 《输出100-200之间不能被3整除的数》

    #include<stdio.h>
    void main()
    {
    	int i;
    	for(i=100;i<=200;i++)
    	{
    		if(i%3==0) continue;
    		printf("%4d",i);    //不执行这条语句
    	}
    }

3、知识点:

  1. break:
    1. 结束整个循环
    2. 可以用于switch 和循环语句
  2. continue:
    1. 只结束本次循环
    2. 只用于循环语句
  3. 出现在循环体中的 if 中

八、循环结构例题

1、简单循环结构例题:

1、《编程打印99乘法表

#include<stdio.h>
void main()
{
	int i,j,z;
	for(i=1;i<=9;i++)
	{
		for(j=1;j<=i;j++)    //for(j=9;j>=i;j--)
			printf("%d*%d=%d	",j,i,i*j);
		printf("\n");
	}
}

2、《***直角三角形123》

#include<stdio.h>
void main()
{
	int i,k,n;
	printf("请输入直角三角形的直角边边长:");
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		for(k=1;k<=i;k++)
			printf("*");
		printf("\n");
	}
}

3、《直角三角形135》 

#include<stdio.h>
void main()
{
	int i,j,n;
	printf("请输入直角三角形的直角边边长:");
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=2*i-1;j++)
			printf("*");
		printf("\n");
	}
}

  4、《直角三角形》

将第一个大for{}循环里边的第二个for{}循环和第一个for{}位置颠倒一下,即可得到如上两个三角形

#include<stdio.h>
void main()
{
	int i,k,j,n;
	printf("请输入直角三角形的直角边边长:");
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{	
		for(j=1;j<=i;j++)
			printf(" ");
		for(k=1;k<=n-i+1;k++)
			printf("*");
		printf("\n");
	}
}

 5、《等腰三角形》

//等腰三角形
#include<stdio.h>
void main(){
	int i,j,k,n;
	printf("请输入等腰三角形的高n:");
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		for(k=1;k<=n-i+1;k++)
			printf(" ");
		for(j=1;j<=2*i-1;j++)
			printf("*");
		printf("\n");
	}
}

6、《菱形》

//菱形
#include<stdio.h>
void main()
{
	int i,j,k,n;
	printf("请输入菱形的高n:");
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=n-i;j++)
			printf(" ");
		for(k=1;k<=2*i-1;k++)
			printf("*");
		printf("\n");
	}
	for(i=n-1;i>=1;i--)
	{
		for(j=1;j<=n-i;j++)
			printf(" ");
		for(k=1;k<=2*i-1;k++)
			printf("*");
		printf("\n");
	}
}

下节(循环结构综合例题)

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 请写1个支付宝接龙红包程序. 随机产生1-100的随机数,作为红包金额. 让用户不断的去猜,直到猜正确为止.最后发给用户的红包金额是 红包金额/猜得次数. 2. 循环录入5个人的年龄并计算平均年龄,如果录入的数据出现负数或大于100的数,立即停止输入并报错. 3. 实现要求用户一直输入QQ号码和密码,只要不是123456、888888就一直提示要求重新输入,如果正确则提登录成功. 4. 1-100之间不能够被7整除的数的和. 5. 求1-200之间的所有的整数的累加和 6. 求1-100之间6的倍数的个数 7. 输入班级人数,然后依次输入学员成绩,计算班级学员的平均成绩和总成绩 8. 2006年培养学员80000人,每年增长25%,请问按此增长速度,到哪一年培训学员人数将达到20万人?*** 9. 从键盘输入10个数,求出最大数 10. 1000~ 5000之间有多少整数,其各位数字之和为5,分别是哪些数(例如整数2003的各位数字之和为 2+0+0+3 ,等于5)), 并统计满足条件的整数有多少个。 11. 求1-100中 是7的倍数 的数值之和 12. 求1-1000之间的所有的奇数之和 13.猜数字游戏. 随机产生1个1-100之间的数 让用户猜 当用户输入的数比产生的随机数大 就输出 猜大了 并让用户继续输入新的数.。 当用户输入的比产生的随机数小的时候 就输出 猜小了 并且继续猜 当用户刚好输入的就是这个随机数的时候 提示成功 并显示用户猜了多少次. 14. 老师问学生,这道题你会做了吗? 如果学生答"会了(y)",则可以放学. 如果学生不会做(n),则老师再讲一遍,再问学生是否会做了......直到学生会为止,才可以放学. 直到学生会或老师给他讲了10遍还不会,都要放学 15. 写1个程序. 随机的产生1个2位数的加法运算.让用户输入这个运算的结果 然后判断这个结果是否正确. 来10次. 每个人默认有10分. 产生10个加法运算.操作数的范围在0-100之间. 每产生1个加法运算 就让用户输入结果.判断是否正确. 当回答正确的时候就为用户加1分. 错误的时候就扣1分. 当10道题目回答完毕之后 就显示用户得的分数. ***
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值