求大神看看这道数组和函数的C语言题,我的程序编译不成功[face]emoji:051.png[/fa

求大神看看这道数组和函数的C语言题,我的程序编译不成功[face]emoji:051.png[/face][face]emoji:051.png[/face][face]emoji:051.png[/face]

有一些错误,如下(如有帮助,请采纳一下,谢谢)

1.insert的声明返回值是void,实现的时候成了int

2.在for循环中后移的时候逻辑出错;

3.insert的第一行,多声明了一个int n;

修改后的代码如下:

#include <stdio.h>

void insert(int a[],int n);
int main()
{
	int a[10] = {11,22,33,44,55,66,77,88,99};
	int n,i;
	scanf("%d",&n);
	insert(a,n); //注意这个地方是a,不是a[]

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

	getchar();
	getchar();
	return 0;

}


void insert(int a[],int n)
{
	if (n > a[8])
	{
		a[9] = n;
		return;
	}
	int i,j,m;//注意,原代码此处多了一个n和t
	for (int i = 0; i < 9; i++)
	{
		if (a[i] > n)
		{
			m = a[i];
			a[i] = n;
			//从i开始以后的往后移动
			for (j = 9;j>i+1;j--)
			{
				a[j] = a[j-1];
			}
			a[i+1] = m;
			break;
		}
	}


}