黑马程序员技术交流社区
标题: 循环的几种应用场景 [打印本页]
作者: 莞尔,一笑。 时间: 2016-6-3 00:12
标题: 循环的几种应用场景
4: 找出指定范围中符合特定条件的数(先遍历出这个范围之中所有的数,然后再加特定条件,将符合条件的数生成循环)
:要找到 n - m 这个范围之内符合条件的数
1): 先遍历 n - m 之间的每一个数
2):在判断遍历出来的数是不是符合条件,如果符合就拿出来用,不符合直接pass
int i = n;
while( i <= m)
{
if(一些特定的条件)
{
如果达成,就把i 拿出来
}
i++;
}
PS:一个数字求各位数字的值:X=一个千位数: X/1000 = 千位
X%1000/100=百位
X%1000%100/10=十位
X % 10 = 个位
5: 利用循环求累加和与平均值(n - m 每一个数的累加和)
1)先声明一个变量用来代表累加和(sum)
2)再遍历n - m 之间每一个数
3)将遍历中的每一个数累加到累加和(sum)中去
4)遍历完成以后,sum 就是n - m之间每一个数的累加和
(平均值就为: sum/m ,累加和除以这些数 )
int sum = 0;
int i = n;
while(i <= m)
{
sum += i
i++;
}
6:求一堆数中的最大值和最小值(直接将语法带入)
int max = 0;(先要声明一个变量,就是这些数中最大的值)
int i = n(然后遍历n - m这些数中所有的数,将这些遍历出来的数与max最大的数进行比较比之前大的就留下来,小的就pass掉,当遍历结束的时候留在max中的,就是这些数中最大的数;最小值与之相反)
while(i <= m)
{
printf("请用户随机输入几个数\n");
int num = 0;
scanf("%d",&num);(num是用户输入的数,输入后与n - m之间的数进行比较)
if(num > max)
{num == max;}
i++;
printf("max = %d\n",max);
}
(在进行比较的同时可能出现一些状况,只要记得:1.要保证这个max是用户输入的第一个数,可用if(i == n){max = num;}) 2.在xcode中int类型最大和最小是有提示的,INT_32MAX 或者 INT_32MIN,比最大的时候输入最小的INT_32MAX比最小的输入最大的INT_32MAX;
7:循环应用7 - 计数
1)记录循环了多少次
2)记录某个条件满足了多少次
案例:1-100间是3的倍数有多少
int count = 0;(声明一个记录次数的变量)
int i =1;(循环的次数)
while(i <= 100) (循环的条件)
{
if( i % 3 ==0 ) (如果在这之间是3的倍数)
{
count++; (就让它在这个循环体中+1)
}
i++;
printf("在1-100之间是3的倍数有%d个",count);
}
8:应用循环8-穷举(好比1个1个挨个试)
int num = arc4random_uniform(n)+1 (系统随机产生随机数,前提是在系统下要引入头文件,在#include<stdio.h>下写入#include<stdlib.h>)
int i =0;
while(1)
{
if(num == i)
{
printf("%d",i);
break;
}
i++;
}
作者: 冬以 时间: 2016-6-3 23:11
向楼主学习
作者: SQQ 时间: 2016-6-11 18:08
学习了,谢谢分享!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |