C语言:实现有序数组插入元素
已知一个排好序的数组(数组元素从小到大),现从键盘输入一个数,将该数按照原来的排序规律插入进数组中。
C语言程序如下(以10个数从小到大为例):
#include <stdio.h>#define N 10int main()
{int a[N]={0},b[N+1]={0};int c; unsigned char i;unsigned char left=0,right=N-1,mid;printf("请输入排好序的数组(数组元素从小到大):");for(i=0;i<N;i++)scanf("%d",&a[i]);printf("请输入一个整数:");scanf("%d",&c);do{mid=(left+right)/2;if(c<a[mid])right=mid;else left=mid;}while(left+1!=right);for(i=0;i<N+1;i++){if(i<right) b[i]=a[i];else{if(i==right) b[i]=c;else b[i]=a[i-1];}}printf("插入新数后数组元素新顺序:");for(i=0;i<N+1;i++) printf("%d ",b[i]);return 0;
}
程序运行结果如下:
欢迎大家批评指正!!!