C语言四
c语言循环结构
为什么用循环?
C语言中的循环主要分为三种:while循环,do...while循环 for循环
while循环:先判断条件是否成立,如果条件成立将执行其下的循环体,如果条件不成立一次都不执行。
语法:
while(条件)
{
//循环体;
}
实例:
int a;
while(a<=100){
printf("while执行一百遍\n");
a++;
}
计算0~100的偶数和
int i=0,sum=0;
while(i<100){
if(i%2==0)//偶数
sum+=i;
}
i++;
}
printf("0~100之间的所有偶数和为:%d\n",num);
do...while结构:先执行循环体,再判断条件是否为真,如果为真继续执行,如果为假终止循环===>先执行,再判断(至少会执行一次)
语法: do{
循环体;
}while(条件);
实例:0~100的奇数
int i=0;num=0;
do{
if(i%2!=0){
num+=i;
}
i++;
}while(i<100);
printf("0~100之间的所有奇数和为:%d\n",sum);
猜价格高低:5次机会
int number,i=0,price=100;
do{
printf("请输入商品价格:\n");
scanf("%d",&number);
if(number<price){
printf("低了!\n");
}else if(number>price){
printf("高了!\n");
}else{
printf("猜中了!\n");
break;//跳出循环
}
i++;
}while(i<5);
计算0~100之间所有能被3整除和带3的数字之和
int i=0;//循环变量
int sum=0;
while(i<100){
if((i%3==0)||(i%10==3)||(i/10==3)){
sum+=i;
}
i++;
}
printf("0~100之间所有能被3整除和带3的数字之和为%d",sum);
打印100~1000之间所有水仙花数,并统计其个数
int i=100;//循环变量
int count=0,ge,shi,bai,he;//统计水仙花数
do{
ge=i%10;//获取个位
shi=i/10%10;//获取十位
bai=i/100; //获取百位
he=ge*ge*ge+shi*shi*shi+bai*bai*bai;
if(he==i){
printf("%d\t",i);
count++;
}
i++;
}while(i<1000);
printf("\n100~1000之间共有%d个水仙花数",count);
李白闲来无事街上走,提壶去买酒,遇店加一倍,遇花喝一斗,五遇花和店喝光壶中酒,李白壶中原有多少酒?
//分析:假设原有壶中有x斗酒;===>遇到花之前(x+1);遇到店之前(x+1)/2
float x=0;//壶中原有酒的斗数
int i=0;
while(i<5){
x=(x+1)/2;//遇到花和店之前的壶中酒的斗数
i++;
}
printf("李白壶中原有%7.3f斗酒",x);
环嵌套:一个循环中嵌套其他循环,只有在内层循环结束时,才能执行下一次外层循环(外层循环执行1次,内层循环执行N次)
while(条件){
while(条件){
//循环体;
}
}
do{
do{
//循环体;
}while(条件);
}while(条件)
使用循环打印矩形:外层循环控制打印的行数,内层循环控制每行打印*的个数
********
********
********
int i=0,j;
while(i<3){
j=0;
while(j<8){
printf("*");
j++;
}
printf("\n");
i++;
}
打印直角三角形:
*
**
***
****
int i=0,j;
while(i<4){//外层控制打印的行数
j=0;
while(j<=i){//内层循环控制每行打印星号的个数
printf("*");
j++;
}
printf("\n");
i++;
}
打印直角三角形
*
***
*****
*******
int i=1,j;
while(i<5){//外层控制打印的行数
j=0;
while(j<2*i-1){//内层循环控制每行打印星号的个数
printf("*");
j++;
}
printf("\n");
i++;
打印正的等腰三角形
*
***
*****
*******
int i=0,j,k;
while(i<4){//外层循环控制行数
j=0,k=0;
//打印空格
while(j<3-i){
printf(" ");
j++;
}
//打印星号
while(k<2*i+1){
printf("*");
k++;
}
//换行
printf("\n");
i++;
}
for循环:在for循环中;是不能或缺的,表达式1,表达式2,表达式3都可以省略。
for(表达式1;表达2;表达式3)
{
//循环体;
}
执行顺序: 初始化循环变量-->循环条件判断--->执行循环体--->更改循坏变量
示例:逢3过小游戏"
int number,fac=1;//接受用户输入的数字
int i;
printf("请输入数字");
scanf("%d",&number);
for(i=1;i<=number;i++){
fac=i*fac;
}
printf("%d",fac);
示例: 九九乘法表
int i,j;
for(i=1;i<=9;i++){
for(j=1;j<=i;j++){
printf("%d*%d=%d\t",i,j,i*j);
}
printf("\n");
}
break和contine关键字
break:跳出循环
continue: 跳过本次循环,继续下一次循环
C语言四的更多相关文章
- tn文本分析语言(四) 实现自然语言计算器
tn是desert和tan共同开发的一种用于匹配,转写和抽取文本的语言.解释器使用Python实现,代码不超过1000行. github地址:https://github.com/ferventdes ...
- iOS开发-OC语言 (四)数组
知识点 1.NSArray 2.NSMutableArray 1.数组的基本用法: 2.数组的遍历 3.数组排序 =========== NSArray 不可变数组 ============= ...
- [PLC]ST语言四:INV_MEP_MEF_PLS_PLF_MC_MCR
一:INV_MEP_MEF_PLS_PLF_MC_MCR 说明:简单的顺控指令不做其他说明. 控制要求:无 编程梯形图: 结构化编程ST语言: (*运算结果的反转INV(EN);*) M415:=in ...
- python语言(四)关键字参数、内置函数、导入第三方模块、OS模块、时间模块
一.可变参数 定义函数时,有时候我们不确定调用的时候会传递多少个参数(不传参也可以).此时,可用包裹(packing)位置参数(*args),或者包裹关键字参数(**kwargs),来进行参数传递,会 ...
- Django之模板语言(四) ------>Tags
案例1:单层for循环 # Django 模板语言测试代码 def template_test(request): name_list=["张三","李四",& ...
- 快速学习C语言四: 造轮子,ArrayList
高级语言里的列表是最常用的数据结构,在C里造个轮子玩玩,C没有泛型,先用int练习. Collection的ADT一般有hasnext,next,add, remove操作,List一般还加了remo ...
- c语言 四种方法调用数组
#include <stdio.h> /********************************* * 方法1: 第一维的长度可以不指定 * * 但必须指定第二维的长度 * * ...
- ASP.NET MVC下使用AngularJs语言(四):$window.alert
判断文本框是否有填写,没有填写使用angularjs的$window.alert来提示用户. 创建一个ASP.NET MVC控制器: 接下来是准备一个angularjs的控制器: pilotApp.c ...
- [Python学习笔记1]Python语言基础 数学运算符 字符串 列表
这个系列是我在学习Python语言的过程中记录的笔记,主要是一些知识点汇总,而非学习教程,可供有一定编程基础者参考.文中偏见和不足难以避免,仅供参考,欢迎批评指正. 本系列笔记主要参考文献是官网文档: ...
随机推荐
- Redis(二):redis命令构建及关键属性解析
上一篇文章,我们从框架层面,主要介绍了redis的启动过程,以及主要的命令处理流程逻辑.这些更多的都是些差不多的道理,而要细了解redis,则需要更细节的东西. 今天我们稍微内围的角度,来看看几个命令 ...
- Docker学习(三)认识Docker和常用命令
Docker学习(三)认识Docker和常用命令 Docker体系结构 docker服务端,作为服务的提供方,核心进程 docker daemon,所有docker命令都是通过这个进程完成的 REST ...
- 从零开始ming的多人联机游戏(3)为socket通讯添加mysql数据库
macOS下visual studio C#加载mySql 本文在上一节的基础上,添加了mysql数据库的功能.client发送信息给服务器后,服务器将收到的消息保存在数据库中. 如果client发送 ...
- 数据结构与算法 --- js描述队列
js描述队列 队列的特性是只能在队尾插入元素,在队首删除元素,先进先出: 队列被用在很多地方,比如提交操作系统执行的一系列进程,打印任务池,模拟现实中的排队: //队列类 function Queue ...
- http--->http缓存机制系统梳理
http缓存 HTTP请求的过程 从在浏览器地址栏敲入域名-DNS解析-实际IP-(中间可能多个代理服务器分发)- 源服务器,请求抵达源服务器后,在服务器上找到请求的资源,再通过代理服务器一层层的返回 ...
- 使用shiro 框架 报错No WebApplicationContext found: no ContextLoaderListener or DispatcherServlet registered?
1.问题描述:ssm 框架中使用shiro 中出现问题 原来web.xml 文件如下: <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, ...
- SUSE Linux Enterprise 11 离线安装 DLIB 人脸识别 python机器学习模块
python机器学习模块安装 我的博客:http://www.cnblogs.com/wglIT/p/7525046.html 环境:SUSE Linux Enterprise 11 sp4 离线安 ...
- Oracle批量创建同义词
一.介绍 Oracle的同义词(synonyms)从字面上理解就是别名的意思,和视图的功能类似,就是一种映射关系.它可以节省大量的数据库空间,对不同用户的操作同一张表没有多少差别;它扩展了数据库的使用 ...
- 异常处理 | java.lang.IllegalArgumentException: Request header is too large
背景 今天在自己使用Springboot开发博客系统的时候,在浏览器点击提交markdown文件一直出现以下异常: java.lang.IllegalArgumentException: Reques ...
- Python小白入门题一——文件增删改
题目描述:用python对文件进行增(创建一个文件).删(删除一个文件).改(重命名)操作. 说明:新建了一个文件夹files存放新增的两个文件,随后这两个文件被批量重命名成“数字.txt”,之后这两 ...