1. 程式人生 > >問題 A: 習題6-4 有序插入

問題 A: 習題6-4 有序插入

gree 要求 esp center blank get 原來 [0 頭文件

問題 A: 習題6-4 有序插入

時間限制: 1 Sec 內存限制: 12 MB
獻花: 213 解決: 185
[獻花][花圈][TK題庫]

題目描述

有一個已排好序的數組,要求輸入一個數後,按原來排序的規律將它插入到數組中。

假設數組長度為10,數組中前9個數(這9個數要求從鍵盤上輸入,輸入時要滿足自小到大的輸入順序)已經按從小到大進行排序。

然後再從鍵盤上輸入一個整數,將此整數插入到前有序的9個數中,使得最終的10個數依然是從小到大有序的。

輸入

第一行輸入以空格分隔的9個整數數,要求按從小到大的順序輸入。

第二行輸入一個整數

輸出

從小到大輸出這10個數,每個數一行。

樣例輸入

1 11 21 31 41 51 61 71 81
45

樣例輸出

1
11
21
31
41
45
51
61
71
81

提示

定義數組時,把數組長度定義為10.

參考代碼:

#include<stdio.h>
#include<algorithm> //使用sort()函數必須加上頭文件#include<algorithm>和using namespace std;
using namespace std;
int main(void){
  int a[10]={0}; //初始化數組
  int i;
  int n;
  for(i=1;i<10;i++){ // 輸入9個數字寫入數組
    scanf("%d",&a[i-1]);
}
  printf("\n");
  for(i=0;i<10;i++){
    printf("%d ",a[i]);
}

scanf("%d",&n);
a[9]=n;
sort(a, a+9); // 調用sort()函數將a[0]~a[9]按從小到大排序,a表示數字第一個單元即a[0]的地址,a+10表示第十個單元地址即a[9]的地址
  for(i=0;i<10;i++){
    printf("%d\n",a[i]);
}
  return 0;
}

問題 A: 習題6-4 有序插入