#include <stdio.h>
#include <stdlib.h>
#include <time.h>
/*
* 问题描述
* 用rand生成10个随机数置与数组,对该数组从大到小排序
* 输入一个任意数,插入数组
*/
#define SIZE 15 //数组大小
#define INITSIZE 10 //随机生成数字的个数
static int compar_reverse(const void *val1, const void *val2);
int
main(void)
{
int array[SIZE] = {0};
int *q;
int i;
int input;
//随机生成INITSIZE个数
srand(time(NULL));
for(i = 0; i < INITSIZE; ++i)
array[i] = rand()00;
//对array快速排序(由大到小)
qsort(array, INITSIZE, sizeof(int), compar_reverse);
scanf("%d",&input);
//找位置
for(i = 0; array[i] > input && i < INITSIZE; ++i)
;
//移动
for(q = array + INITSIZE -1; q >= array + i; --q)
*(q+1) = *q;
//插入
*(q + 1) = input;
//输出结果
for(i = 0; i < INITSIZE + 1; ++i)
printf("%d%c", array[i], i == INITSIZE -1 ? '/n' : ' ');
exit(0);
}
static int compar_reverse(const void *val1, const void *val2)
{
return *(int*)val2 - *(int*)val1;
}