输入若干有序数放在数组中,然后输入一个数,插入到此有序数列中,插入后,数组中的数仍然有序。请对插在最前、插在最后、插在中间三种情况运行程序,以便验证程序是否正确。
源程序:
#include <stdio.h>
#define M 6
int wnn1(int *,int,int);
void wnn2(int *,int);
void main()
{
int i,x,n,t,s[M+1]={10,15,18,24,29,35};
printf("原数组为:\n");
for(i=0;i<6;i++)
printf("%4d",s[i]);
printf("\n\n");
printf("请输入一个整数:");
scanf("%d",&x);
n=M;
t=wnn1(s,x,n);
wnn2(s,t);
}
int wnn1(int *a,int x,int n)
{
int i,j=0;
while(j<n&&a[j]<x)j++;
for(i=n-1;i>=j;i--)a[i+1]=a[i];
a[j]=x;
n++;
return n;
}
void wnn2(int *a,int n)
{
int i;
for(i=0;i<n;i++)
printf("%4d",a[i]);
printf("\n");
}
运行结果: