数组~插队
题目描述
有一个按照升序已排好的9个元素的数组,今输入一个数要求按原来排序的规律将它插入数组中。
输入
第一行,原始数列。 第二行,需要插入的数字。
输出
排序后的数列
样例输入
1 7 8 17 23 24 59 62 101
50
样例输出
1 7 8 17 23 24 50 59 62 101
1 #include<stdio.h> 2 int main(){ 3 int n; 4 int a[15]; 5 int i; 6 //第一个循环输入数组 7 for(i=1;i<=9;i++){ 8 scanf("%d",&a[i]); 9 } 10 scanf("%d",&n); 11 //第二个循环找插入数字的位置 12 // while(n>a[i]){ 13 // i++; 14 // } 15 //第三个循环插入后对原数组的下表后移 16 //第四个循环输出 17 18 for(int j=1;j<=9;j++){ 19 if(n>=a[j-1] && n<=a[j]){ 20 printf("%d\n",n); 21 } 22 printf("%d\n",a[j]); 23 } 24 return 0; 25 }
solution:
1 不要把插入数放进数组里进行判断或者输出,增加移动数组下标的操作~在输出数组的过程中,插入数找到合适的位置便立刻进行输出后,继续输出数组剩下的数