将相同功能代码重复多次
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。