求最接近数,输出不了?

#include<stdio.h>
void sort(int a[],int n){
    int i,j,k;
    for(i=0;i<n-1;i++){
        for(j=0;j<n-1-i;i++){
            if(a[i]>a[j]){
                k=a[i];
                a[i]=a[j];
                a[j]=k;
            }
        }
    }
}

int main(){
    int *num[10000],n,i,*b[9999];
    printf("输入数组长度:\n");
    scanf("%d",&n);
    for(i=0;i<n;i++){
        printf("输入数组的第%d个数:\n",i+1);   
        scanf("%d",&num[i]);
    }
    sort(num[n],n);
    for(i=0;i<n-1;i++)
        *b[i]=num[i+1]-num[i];
    sort(b[n-1],n-1);
    printf("该数组的最接近数为:%d",b[0]);   
}

输入数组长度:
5
输入数组的第1个数:
1
输入数组的第2个数:
3
输入数组的第3个数:
5
输入数组的第4个数:
89
输入数组的第5个数:
100


Process exited after 9.825 seconds with return value 3221225477
请按任意键继续. . .

#include<stdio.h>
void sort(int a[],int n){
    int i,j,k;
    for(i=0;i<n-1;i++){
        for(j=0;j<n-1-i;i++){
            if(a[i]>a[j]){
                k=a[i];
                a[i]=a[j];
                a[j]=k;
            }
        }
    }
}

int main(){
    int num[10000],n,i,b[9999];
    printf("输入数组长度:\n");
    scanf("%d",&n);
    for(i=0;i<n;i++){
        printf("输入数组的第%d个数:\n",i+1);   
        scanf("%d",&num[i]);
    }
    sort(num,n);
    for(i=0;i<n-1;i++)
        b[i]=num[i+1]-num[i];
    sort(b,n-1);
    printf("该数组的最接近数为:%d",b[0]);   
}

输入数组长度:
5
输入数组的第1个数:
1
输入数组的第2个数:
3
输入数组的第3个数:
5
输入数组的第4个数:
89
输入数组的第5个数:
100
该数组的最接近数为:2Press any key to continue . . .

问题解决的话,请点下采纳