随机在0至9中产生五个从小到大排序的数(第四天)
//
// main.c
// 联系题
//
// Created by mac on 18/7/19.
// Copyright © 2018年 mac. All rights reserved.
//
/*****随机在0至9中产生五个从小到大排序的数*****/
/*总结:
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;
}