1、while循环

循环三要素:

1)、循环变量的初值

2)、循环变量的判断

3)、循环变量的更新

#include <stdio.h>
#include <stdlib.h> int main()
{
int i = ;
while(i<=)
{
printf("第%d遍\n",i);
i++;
}
return ;
}

小练习1:使用循环计算1-100的累加和

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

小练习2:使用循环实现三次密码输入错误退出系统

#include <stdio.h>
#include <stdlib.h> int main()
{
int i = ; //循环变量
int password; //密码
while(i<)
{
printf("请输入密码:");
scanf("%d",&password);
if(password!=)
{
printf("密码输入错误,当前输入第%d次密码!\n",i+);
}
else if(password==)
{
printf("密码输入成功!\n");
break;
}
if(i==)
{
printf("密码输错三次,系统强制退出!\n");
exit();
}
i++;
} return ;
}

这里有几个要注意的地方:

1)、加入了当密码输入正确就退出的判断机制;

2)、if...else if....else if...else...这种结构,一旦里面有一个符合条件,就不会继续下面的判断了,所以在

判断i是否到2这里,用的是if,而不是else if,因为第三次密码输入错误的时候,已经在第一个if里判断过了,就不会在下面的else if里

继续判断了

小练习3:某宝双十一2015年的交易额为800亿,每年递增25%,问按此速度哪年交易额达到2000亿?

#include <stdio.h>
#include <stdlib.h> int main()
{
double initSum = ; //2015年的交易额
double increase = 0.25; //递增率
int initYear = ; //初始年份
while()
{
initSum *= 1.25;
if(initSum>=)
{
printf("第%d年交易额达到2000亿,此年交易额为%lf\n",initYear+,initSum);
break;
}
initYear++;
} return ;
}

小练习4:使用循环模拟实现玩家对战

双方初始HP均为100;

每次攻击5-15;

HP最先到零或以下的被KO

#include <stdio.h>
#include <stdlib.h> //标准库
#include <time.h> //time方法
#include <windows.h> //Sleep
int main()
{
srand(time(NULL));
//rand()函数的取值范围是0-32767
printf("随机种子:%d\n",rand());
int hp1 = ,hp2=; //1p和2p的初始血量
int att1,att2;//1p和2p每次的攻击
int i = ;//对战的轮数
while(hp1>= && hp2>=)//当两个玩家都活着的时候,才能进行对战
{
//默认1p首先攻击
att1 = rand() % +;
att2 = rand() % +;
//玩家1攻击,玩家2掉血
hp2 -= att1;
//玩家2攻击,玩家1掉血
hp1 -= att2;
if(hp1<= && hp2>=)
{
printf("玩家2胜利\n");
break;
}
else if(hp1>= && hp2<=)
{
printf("玩家1胜利\n");
break;
}
printf("************************************\n");
printf("第%d轮:\n",i);
printf("玩家1攻击力:%d,玩家2剩余血量:%d\n",att1,hp2);
printf("玩家2攻击力:%d,玩家1剩余血量:%d\n",att2,hp1);
printf("************************************\n");
i++;
Sleep();//休眠500ms
}
printf("游戏结束,玩家1的血量:%d\t玩家2的血量:%d\n",hp1,hp2);
return ;
}

C语言复习4_while循环的更多相关文章

  1. C语言复习6_doWhile循环

    基本语法 do{ 循环操作 }while(循环条件); 特点:先执行,再判断 先执行一遍循环操作 符合条件,循环继续执行 否则循环退出 例题: #include <stdio.h> #in ...

  2. C语言复习-字符串与指针

    C语言复习-字符串与指针 例一: [字符串处理 去除C代码中的注释] C/C++代码中有两种注释,/* */和//.编译器编译预处理时会先移除注释.就是把/*和*/之间的部分去掉,把//以及之后的部分 ...

  3. C#5 复习总结循环 迭代和穷举

    一.章节复习: 循环.反复执行某段语句一种语法形式. 1.基本语法: for( 初始条件 ; 循环条件 ; 状态的改变 ) { 循环体 } 循环的四要素. 循环的执行过程.初始条件--循环条件--循环 ...

  4. C语言-for循环

    for循环是C语言中的循环语句之一,它的一般形式为for(初值,条件表达式,步长){语句};初值通常是一个赋值语句, 它用来给循环控制变量赋初值: 条件表达式是一个关系表达式, 它决定什么时候退出循环 ...

  5. C语言复习---零散补充

    一:double和float使用scanf获取数据 printf输出float和double都可以用%f,double还可以用%lf. 2 scanf输入float用%f,double输入用%lf,不 ...

  6. C语言复习20170728

    C语言复习20170728 键盘输入和屏幕输出 字符常量:把字符放在一对单引号内,适用于多数可打印字符. 转义字符: 以反斜线()开头,也是放在一对单引号内,适用于控制字符. .\t,是水平制表符,相 ...

  7. C语言复习20170716

    C语言复习20170716 C数据类型 图片来自:C语言基本数据类型简介 C语言程序处理的数据有常量和变量两种形式. 常量是在程序中不能改变其值的量.例如:整型常量.实型常量.字符常量.字符串常量和枚 ...

  8. C语言复习系列-转义字符

    C语言复习系列-转义字符 准备学习stm32单片机,感觉需要复习一下C语言,翻看了菜鸟教程,竟然有不少地方看不懂,真让人汗颜······ 转义字符大部分语言里面都有,至少我学过的里面都有,在这些语言中 ...

  9. 怎么绘制C语言选择和循环语句的思维导图

    C语言是一门非常基础的计算机语言,是大部分本科学生的公共专业,在C语言的学习中,选择和循环语句是至关重要的部分,利用思维导图可以有效节约时间并加深知识点记忆. 接下来就为大家介绍一下我用iMindMa ...

随机推荐

  1. Centos系统FastDFS搭建与排错

    FastDFS中Tracker server主要是负载均衡和调度,Storage server主要是文件存储. 1.1 系统环境 [root@ centos fastdfs]# cat /etc/re ...

  2. loongson 2f 和u-boot中的cache命令对照

    00000 Index Invalidate INDEX_INVALIDATE_I (I) 00001 Index WriteBack Invalidate INDEX_WRITEBACK_INV_D ...

  3. java的方法重写 ,多态和关键字 instanceof和final

    package cn.pen; /*final 是一个java的关键字,用于修饰局部变量.属性.方法.类,表示最终的意思. final修饰类表示最终类,无法被继承.public final class ...

  4. 谷歌的Android Q到底有哪些新特性及变更?

    Android Q 隐私更改相关介绍 存储范围变更 Android Q 改变了应用程序访问设备外部存储上文件的方式. 通过使用更细粒度的媒体特定权限替换以前的 READ_EXTERNAL_STORAG ...

  5. nodejs adm-zip 解压文件 中文文件名乱码 问题解决

    修改需要使用到iconv-lite包 (npm安装即可),修改 zipEntry.js 文件中的 entryName 方法 var iconv = require('iconv-lite'); var ...

  6. set操作

    Set操作,Set集合就是不允许重复的列表 sadd(name,values) # name对应的集合中添加元素 scard(name) 获取name对应的集合中元素个数 sdiff(keys, *a ...

  7. VBA开发手记

    本博文,将主要记录VBA for Excel项目中遇到并解决的问题,不定期更新. 1.日期单元格前面加空格就变成文本了,find查找参数注意:what:=Cstr(Date),lookat:=2 2. ...

  8. 分布式队列神器 Celery

    Celery 是什么? Celery 是一个由 Python 编写的简单.灵活.可靠的用来处理大量信息的分布式系统,它同时提供操作和维护分布式系统所需的工具. Celery 专注于实时任务处理,支持任 ...

  9. Linux服务器常用工具

    一.Ubuntu18版本 服务器 1)替换源.将原有的源注释掉 vi /etc/apt/sources.list deb http://mirrors.aliyun.com/ubuntu/ bioni ...

  10. Scrapy 扩展中间件: 针对特定响应状态码,使用代理重新请求

    0.参考 https://doc.scrapy.org/en/latest/topics/downloader-middleware.html#module-scrapy.downloadermidd ...