循环结构之 while循环
来源:互联网 发布:mongodb 数据库设计 编辑:程序博客网 时间:2024/05/22 07:04
day6 while循环
**今天的内容主要是练习 练得多了就好了
慢慢的会越来越熟悉**
while循环结构简要介绍
* 1. 什么叫做循环*
: 循环就是有一段代码反复执行
* 2. 格式*
while(条件表达式) // 循环头 { 语句1; // 循环体 }
死循环
1. 死循环
: 一段代码反复不停的执行 而且不会停止就叫做死循环
while(1)
{
printf(“死循环”);
}
* 2. 无效循环*
while(0)
{
printf(“无效循环”);
}
使用while循环的注意
- while(条件表达式),这个条件表达式也可以是一个普通的表达,只要有真假就可以
- 用真 永假
while(10 ) 永真
while(0) 永假 - 循环体可以只有一句代码 也可以有多句代码 甚至可以没有
- 写一个循环语句 需先确定什么是循环体 循环条件是什么
循环的第一个应用
图一
循环小练习
“应用场景”:求累加和,求积,平均值
例题:
求1+2+3+4+5…+100的和
#include <stdio.h>int main(int argc, const char * argv[]) { // insert code here... //先把题目简单化:打印1-100所有的数 int count = 1; int sum = 0;//求和的容器 while (count < 101) { // 这一句是打印 所有的数 //但是 题目不是打这个数 而是求和 //既然都打印出来了 那么只要不打印, 把这个数加到某一个容器中 // sum = sum+count; /* sum = 0 + 1; sum = 0 + 1 + 2 sum = 0 + 1 + 2 + 3 .... */ sum+=count;//sum + count ;sum = count // printf("%d ",count); count++; } printf("sum = %d\n",sum); return 0;}
“例题”:打印 1000- 5000 之内 各个位数的和为5 的数
int main(int argc, const char * argv[]) { // insert code here... //怎么求各个位数 /* 分析: 1234 把你要的那个数 移到个位 1234 % 10 = 4 1234/10%10 = 3 1234/100%10 = 2 1234/1000 = 1 */ //打印 1000- 5000 之内 各个位数的和为5 的数 int count = 1000; while (count < 5001) { //这个打印语句 不是所有的书都需要打印 int ge = count / 1 % 10; int shi = count / 10 % 10; int bai = count / 100 % 10; int qian = count / 1000 % 10; if (ge + shi + bai + qian == 5) { printf("%d ",count); } count++; }}
“例题:
请用户输入班级的人数
然后依次 输入每一个学生的成绩
求 成绩的总分和平均分
#include <stdio.h>int main(int argc, const char * argv[]) { // insert code here... //1.确定一下人数 printf("请输入您的班级人数:\n"); int nums = 0; scanf("%d",&nums); //循环 int count = 0; //count cong 0 开始 那么count 小于 xxx 就是循环xxx次 int sum = 0;//求和的容器 while (count < nums) { /* 循环体里面都要干啥? 1.提醒:请输入第2个人的成绩 2.scanf 3.求和 */ //提示输入第几个学生 printf("请输入第%d个学生的成绩\n",count + 1); int score = 0; scanf("%d",&score); //求和 sum+=score;//不能写成 sum+score; sum = score count++; } //打印总成绩和平均分 printf("sum = %d\n",sum); printf("avg = %d\n",sum / nums); return 0;}
“应用场景”:求若干个数的最大值和最小值
例题:
让用户输入5个数,求这5个数的最大值
int main(){ //1.定义一个变量A,就是存放最大值的 ---> 相当于上面例子 拳王 int max = INT32_MIN; //2.定义一个变量B,接受用户输入的数 ---> 相当于上面例子的 班里面的挑战者 int shuRu = 0; //3.写循环-->接受用户输入,并找出最大值 --> 依次上台挑战拳王 //3.1-->次数: 循环5次 int i = 1; while (i<6) { //3.2-->循环体: 在循环体中,让用户向变量B中输入数据,输入完毕之后,和变量A进行比较,如果B比A,把B的值赋值给A,总之,A中存储的一定是用户已经输入的数中最大的一个 printf("请输入第%d个数",i); scanf("%d",&shuRu); max = max > shuRu?max:shuRu; i++; } printf("你输入的最大的数是%d",max); return 0;}
穷举
1.是什么一个一个一次测试,直到找到正确的答案,这种解决问题的思路叫做穷举2.怎么用1>实际需求 爆破wifi密码
例题1.产生1-100的随机数,判断产生的数字是多少
//思路:遍历1-100这100个数,找到和产生的随机数相等的数就结束循环
#include<stlib.h>int main(){ int num = arc4random_uniform(100) + 1; printf("%d\n",num); int i = 1; while (1) { if(num == i) { printf("%d\n",i) break; } i++; } return 0;}
**3>面试题
有一篮鸡蛋,至少有两个,两个两个数,多一个,三个三个的数,多一个,四个四个的数,还是多一个,至少有多少个鸡蛋?**
/思路//这个数至少比2大,对2取余数为1,对3取余数为1,对4取余数为1,//从2开始找,依次增加1,直到找到满足 (数%2==1)&&(数%3==1)&&(数%4==1)int main(){ int i = 2; while (1) { if(i%2==1&&i%3==1&&i%4==1) { printf("至少是%d\n",i); break; } i++ } return 0;}
0 0
- 循环结构之 while循环
- 第五 Java循环结构之while循环
- 循环结构:while循环
- 循环结构之while篇
- 循环结构:do - while循环
- while,do while循环结构
- while语句循环结构
- 循环结构-while
- 循环结构(while语句)
- 循环结构while,for
- js循环结构while
- 玩转Bash脚本:循环结构之while循环
- 第六 Java循环结构之 do while 与for循环
- c#循环结构(一)----while循环
- 循环结构语句——while循环
- if结构和for循环,while循环
- 循环之while
- linux之while循环
- vs2010:LNK1104无法打开.exe文件错误
- 二十三、访问者模式Visitor(行为型)
- 2016 Personal Training #7 Div.2 CodeForces 589A Email Aliases
- 输出1到N之间的素数
- ServiceLoader和DriverManager使用总结
- 循环结构之 while循环
- IOS学习之核心动画-倒影
- java代理机制
- Java成长之路05
- jquery生成二维码插件-封装
- 在CentOS上编译安装FFmpeg
- Android 整合实现简单易用、功能强大的RecyclerView
- UVA10817 Headmaster's Headache dp+二进制集合
- UWP中如何利用异步编程跳出死循环