你的程序存在两个问题:1. 插入值没有传到fun函数;2. 找到插入点后没有终止循环,停止继续查找插入点。我已经将程序修改如下,在Turbo C 2.0调试通过,你仔细研究一下,希望对你有帮助。
#include
void Insert(int a[],int x,int n)
{
int i,j,ins_at=0;
if(x>a[n-2])
a[n-1]=x;
else
for(i=0;i<=n-1;i++)
if(x ins_at=i;
break;
}
for(j=n-1;j>ins_at;j--) a[j]=a[j-1];
a[ins_at]=x;
for(i=0;i
}
void main()
{
int a[11]={1,2,3,4,5,6,7,8,9,11},x;
printf("Insert a number x:");
scanf("%d",&x);
Insert(a,x,11);
printf("\n");
}
x 是在main函数中定义的,不能直接在insert函数中用,建议增加一个参数,将x传递过去。