while for do-while循环语句

将相同功能代码重复多次

C语言中提供了三种循环语句

一.while循环

while(循环条件)//循环条件决定循环次数

{

循环体(重复的代码块)//循环体决定了循环的功能

}

循环一定要结束(更新循环变量)

可能一次都不执行

循环中可以嵌套循环语句

嵌套多个循环,也可嵌套多重循环

变量的作用域:变量的使用范围

continue:跳过本次循环,继续下次循环

break终止循环(最近循环)

写循环时,一定注意死循环的出现                                        

二.for循环

如果你的循环次数是确定情况,C语言中提供了for循环,建议使用

for(初始化循环变量;循环条件;更新循环变量),两分号不可省略

{

}

for循环对应死循环

for(;;)

{

}

三.do...while循环

do

{

//循环体

循环变量更新

}

while(循环条件);

至少执行一次

换行符也是字符,因此解决方案:连着输入一个字符串;消除掉输入缓冲区中的换行符

getchar();从缓冲区取出一个字符

while(getchar()!= EOF)

:set number

转义字符;一个字符

\n换行

\r回车

\t水平

\\表示斜杠

\"双引号

\' 单引号

\0xxx 八进制、245

练习

1、计算1!+2!+3!+......+10!....+n!

2、代码实现:模拟用户登录的场景,并且只能登录3次。(只允许输入三次密码,如果输入正确

,提示登录成功,如果三次都输入错误,则退出程序)

#include <stdio.h>
#include <stdlib.h>
int main()
{
	//正确密码12345
	int password;//输入密码
	int n = 3;
   	int k = 1;
	char ret;	
	if(n > 0)
	{
		while(k <= 3)
		{	
			printf("请输入密码:");
			scanf("%d",&password);
			printf("是否确认密码(Y 是  N 否):");	
			getchar();
			scanf("%c",&ret);
			if(ret == 'Y')
			{	
				printf("确认!\n");
				if(12345==password)
				{
					printf("登录成功!\n");
					k += 3;
				}
				else
				{
					n = 3 - k;
					printf("密码错误!还有%d次机会\n",n);						k++;				
				}
			}
			else if(ret == 'N')
			{
				printf("取消确认!程序退出!/n");
				return 0;	
			}
			else
			{
				printf("无效确认!\n");
			}
			n = 3 - k;
		}
	}
	else
	{
	printf("程序退出!\n");
	}	
	return 0;
}

3、打印九九乘法表:

4、打印如下图案

#include <stdio.h>
#include <stdlib.h>
int main()
{
	int n,j=1;
	printf("请输入行数:");
	scanf("%d",&n);
	int tot;//空格数
	int num;//*数
	//金字塔
	while(j <= n)
	{		
		tot = n - j;
		while(tot >= 1)
		{
			printf(" ");
			tot--;
		}	
		num = 2*j -1;
		while(num >= 1)
		{
			printf("*");
			num--;
		}
		printf("\n");
		j++;
	}
	//菱形
	j = 1;
	while(j <= n)
	{		
		tot = n - j ;
		while(tot >= 1)
		{
			printf(" ");
			tot--;
		}	
		num = 2*j -1;
		while(num >= 1)
		{
			printf("*");
			num--;
		}
		printf("\n");
		j++;
	}
	while(j  > n && j <= 2*n - 1 )
	{		
		tot = j - n ;
		while(tot >= 1)
		{
			printf(" ");
			tot--;
		}	
		num = 2*n-1-(j-n)*2;
		while(num >= 1)
		{
			printf("*");
			num--;
		}
		printf("\n");
		j++;
	}
	//空心菱形
	j = 1;	
	while(j <= n)
	{		
		
		if(j == 1)
		{
			tot = n - j ;
			while(tot >= 1)
			{
				printf(" ");
				tot--;
			}
			printf("*");	
			printf("\n");
			j++;
		}
		if(j <= n)
		{
			tot = n - j ;
			while(tot >= 1)
			{
				printf(" ");
				tot--;
			}
			printf("*");	
			tot =(j - 1)*2 -1;
			while(tot >= 1)
			{
				printf(" ");
				tot--;
			}
			printf("*");
			printf("\n");
			j++;
		}
	}
	while(j  > n && j <= 2*n - 1 )
	{		
		if(j < 2*n -1)
                {
                        tot = j - n ;
                        while(tot >= 1)
                        {
                                printf(" ");
                                tot--;
                        }
                        printf("*");  
			tot = (2*n-1-j)*2-1;
			while(tot >= 1)
			{
				printf(" ");
				tot--;
			}
			printf("*");
			printf("\n");
			j++;
		}
		if(j == 2*n - 1)
		{
			tot = j - n ;
			while(tot >= 1)
			{
				printf(" ");
				tot--;
			}
			printf("*");	
			printf("\n");
			j++;
		}
		
	}
	return 0;
}

5、编写一个程序,只接受正整数的输入,然后显示小于或等于该数的素数。注意:最小的素数为2。

  • 10
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值