对一个无序数组int a[N]进行降序排列,输出排列后数组,并求出该数组最大值与最小值;在此基础上向该排列后数组插入一个正整数x,要求插入后的数组仍然是有序的

对一个无序数组int a[N]进行降序排列,输出排列后数组,并求出该数组最大值与最小值;在此基础上向该排列后数组插入一个正整数x,要求插入后的数组仍然是有序的
用c语言怎么做


#include "stdio.h"

#include<stdlib.h>


//冒泡排序
void choose(int a[],int n){
    int i,j,temp;
    for(i=1;i<n;i++)
    {
        for(j=n-1;j>=i;j--)
        {
            if(a[j]>a[j-1]){
                temp=a[j];
                a[j]=a[j-1];
                a[j-1]=temp;
            }
        }    
    }    
}
//输出
void output(int a[],int n){
    int i;
    for(i=0;i<n;i++)
        printf("%d\t",a[i]);    
}
void main()
{
    
    int a[1000];
    int n;
    int i,j;
    int num;
    printf("请输入N:");
    scanf("%d",&n);
    for(i=0;i<n;i++){
        scanf("%d",&a[i]);    
        
    }
    //冒泡排序
    choose(a,n);
    //输出
    output(a,n);
    printf("\n最大值=%d,最小值%d\n",a[0],a[n-1]);
    printf("请输入一个值:");
    scanf("%d",&num);
    for(i=0;i<n;i++){
        if(num>a[i]){
            for(j=n;j>=i;j--){
                a[j]=a[j-1];
            }
            a[i] = num;
            break;
        }
    }
    output(a,n+1);
}