随机产生四个有序且不重复的五个数(第五天)

 

#include <stdio.h>

#include <stdlib.h>

#include <stdbool.h>

int main(int argc, const char * argv[]) {

   //定义一个数组

    int ball[6]={};

    for(int i = 0;i < 5;i++){

        int temp;

        //实现随机在1--32之间产生数据

        temp = arc4random()%32+1;

       //实现据不重复

        if(i == 0){

            //随机产生第一个数据直接写进去

            ball[0] = temp;

        }

        else{

            //不是第一个数据有可能重复

            /*判断出现的这个数是否重复,即与其前面的随机数依次比较*/

            

            bool isExit=false;

            //定义一个变量计是否重复

            for(int j = 0;j < i; j++){

            if(ball[j] == temp){

            /*如果重复,i-1退出,重新得到浪费的这一次循环 */

                isExit=true;

                    i--;

                    break;

                }

            }

            if(isExit == false){

                //不重复,将值赋给ball

                ball[i] = temp;

            }

        }

    }

    //保证数据按顺序输出

    int t;

    for (int j = 0; j<4; j++){

        for (int i = 0; i<4-j; i++){

            if(ball[i]>ball[i+1]){

    //如果前面一数大于后面一个数,则两数互换

                t = ball[i];

                ball[i] = ball[i+1];

                ball[i+1] = t;

            }

        }

    }

    //打印数据

            for(int i=0;i<5;i++){

        printf("%-3d",ball[i]);

    }

    printf("\n");

return 0;

}

posted @ 2018-07-19 19:13  你最晴朗  阅读(303)  评论(0编辑  收藏  举报