#include<stdio.h>
int main()
{
int n,i;
void tacle(int*p,int n);
int str[11]={10,20,30,40,50,60,70,80,90,99};
int *p=str;
printf("Please input new element: ") ;
scanf("%d",&n) ;
tacle(p,n) ;
printf("Result: ");
for(i=0;i<11;i++)
printf("%d ",*(p+i)) ;
return 0;
}
void tacle(int*p,int n)
{
int i,j;
for(i=0;i<10;i++)
{
if (n>*(p+9))
{
*(p+10)=n;
}
if(*(p+i)>n)
{
for(j=9;j>=i;j--)
{
*(p+j+1)=*(p+j);
}
*(p+i)=n;
break;
}
}
最后的部分中是从i位置起到最后一个数一起向后放一位,再把i位置留出来给n插入。
现有10整数的升序数列,存储在一维数组中,要求在其中插入任意一个整数后数列仍然有序。原数列为:10,20,30,40,50,60,70,80,90,99。
于 2023-12-14 19:49:08 首次发布