黑马程序员技术交流社区

标题: 循环的几种应用场景 [打印本页]

作者: 莞尔,一笑。    时间: 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