随机在0至9中产生五个从小到大排序的数(第四天)

//

//  main.c

//  联系题

//

//  Created by mac on 18/7/19.

//  Copyright © 2018 mac. All rights reserved.

//

/*****随机在09中产生五个从小到大排序的数*****/

 

/*总结:

  1.产生随机数:在头文件导入<stdlib.h>,运用arc4random()%数求余来产生,产生0--9就arc4random()%9+1或者arc4random()%10

  2.排序用直接插入排序,边生成边插入,即找到小于刚产生的随机数的位置,将这个位置及后面的数后移,再将这个数插入该位置

*/

#include <stdio.h>

#include <stdlib.h>

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

    int num[5]={};

    //定义一个有5个元素的数组

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

        //随机在(0--9)产生五个数

        int temp=arc4random()%9+1;

        if(i == 0){

            num[0]=temp;

            //将第一个随机数直接赋给num[0]

        }else{

            /*判断非第一次产生的随机数与前面的数大小,查找插入位置*/

            int j;

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

                if(temp < num[j]){

                    //j这个位置就是我要插入的位置

                    //j后面的数往后移动

                    for(int k = i-1;k >= j;k--){

                        num[k+1] = num[k];

                    }

                    //插入元素

                    num[j] = temp;

                    break;

 

                }

                

            }

            if(j==i){

                

                num[j] = temp;

            }

        }

    

    }

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

        printf("%d ",num[i]);

    }

    printf("\n");

    

    return 0;

}

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