C语言程序 求高人指导!!

有一个数组,现插入一个数,要求按原来的顺序插入数组(用函数调用形式)
下面是我写的程序,求高人指导

#include "stdio.h"

void input(int a[]);
int sort(int a[]);
int insert(int);
void output(int a[]);

main()
{
int a[11]={1,4,6,13,9,16,19,28,40,100};
int n;
scanf("%d",&n);
input(a);
sort(a);
insert(n);
output(a);
}

void input (int a[])
{
int i;
for(i=0;i<10;i++)
{
printf("%5d",a[i]);
}
printf("\n");
}

int sort (int a[])
{
int i,j,temp;
for(j=0;j<10;j++)
{
for(i=0;i<10-j-1;i++)
{
if(a[i]>a[i+1])
{
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
}
}
}

int insert(n)
{
int i,j,a[11]={1,4,6,13,9,16,19,28,40,100};
printf("put n\n");
scanf("%d",&n);
if(n>a[9])

a[10]=n;
else
{
for(i=0;i<10;i++)
{
if(a[i]>n)
{
for(j=9;j>=i;j--)
{
a[j+1]=a[j];
a[i]=n;
break;
}
}
}

}
}

void output(int a[])
{
int i;
printf("now array:\n");
for(i=0;i<11;i++)
printf("%5d",a[i]);
printf("\n");
}

把你的这些函数都设置为:void
更改这个如下:
void insert(int n,int a[])
{
int i,j;//你之前定义了一个新的数组,当调用完成后,这个数组释放
//而你主函数中的数组却没有操作,当执行output的时候,数组是静态的,当然为0
//printf("put n\n");
//scanf("%d",&n);
if(n>a[9])
a[10]=n;
else
{
for(i=0;i<10;i++)
{
if(a[i]>n)
{
for(j=9;j>=i;j--)
{
a[j+1]=a[j];
a[i]=n;
break;
}
}
}

}
}
温馨提示:答案为网友推荐,仅供参考