有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中
idea
对于一个数组a[n],输入一个数num进行重新排序,再建立一个数组b[n],当a[i]<=num时,b[i]=a[i],当首次出现a[i]>num时,令b[i]=num,记下此时i的值,此后b[i+1]=a[i]
代码
#include<stdio.h>
#include<stdlib.h>
void main(){
int a[15],b[15],max;
for(int i=0;i<10;i++){
a[i]=rand()%100;
}
for(int k=0;k<10;k++)
for(int j=0;j<k;j++){
if(a[k]<a[j]){
max=a[k];
a[k]=a[j];
a[j]=max;
}
}
printf("排序前:\n");
for(int n=0;n<10;n++){
printf("%d\t",a[n]);
}
int num;
printf("\n请输入一个数:");
scanf("%d",&num);
for(int m=0;m<10;m++){
if(num>=a[m]){
b[m]=a[m];
}
if(num<a[m]){
b[m]=num;
break;}
}
for(int q=m;q<=11;q++){
b[q+1]=a[q];
}
printf("排序后:\n");
for(int p=0;p<11;p++){
printf("%d\t",b[p]);
}
}