代码:
#include <stdio.h>#define N 11int main(){//原数组是升序int a[N]={1,4,6,9,13,16,19,28,40,100};int n,num;printf("原数组的数为:\n");for(n=0;n<N-1;n++)printf("%d ",a[n]);printf("\n");printf("请输入一个数:\n");scanf("%d",&num);for(n=0;n<=N-2;n++){if(a[n]<num&&num<=a[n+1]){// printf("n=%d\n",n);//那么num应该插入到a[n+1]位置处,即a[2]处for(int j=N-1;j>=n+2;j--){a[j]=a[j-1];// printf("a[%d]=%d\n",j,a[j]);}a[n+1]=num;}}printf("\n");//printf("n=%d\n",n);n=10了printf("现数组的数为:\n");for(n=0;n<=N-1;n++){printf("%d ",a[n]);}printf("\n");return 0;}
忽略了如果插入数比末尾数大的情况,改进:
如果觉得《有一个已经排好序的数组 要求输入一个数后 按原来排序规律将它插入数组中。》对你有帮助,请点赞、收藏,并留下你的观点哦!