使用指针插入元素,在有序(升序)的数组中插入一个数,使插入后的数组仍然有序。
要求:自定义函数insert(int *a, int n, int x),用于实现向有序的数组中插入一个元素,并使插入后的数组仍然有序,参数分别表示指向数组的指针,有序数字的个数,插入的数。
程序运行结果示例:
输入:请输入10个有序数字 :
1 3 8 9 10 12 13 45 61 90
input inserting data: 11
输出: 1 3 8 9 10 11 12 13 45 61 90
输入提示:"请输入10个有序数字 :\n "
输入格式:%d
输入提示:"input inserting data: "
输入格式:%d
输出格式:%5d
#include <stdio.h>
#include <stdlib.h>
#define N 10
void insert(int *a, int n, int x);
int main()
{
int a[N+1],x,i;
printf("请输入10个有序数字 :\n ");
for(i=0;i<N;i++){
scanf("%d",&a[i]);
}
printf("input inserting data: ");
scanf("%d",&x);
insert(a,N,x);
for(i=0;i<N+1;i++){
printf("%5d",a[i]);
}
return 0;
}
void insert(int *a, int n, int x){
int i,j;
for(i=0;i<n;i++){
if(a[i]>x){
break;
}
}
for(j=n;j>i;j--){
a[j]=a[j-1];
}
a[i]=x;
}