1. 程式人生 > >資料插入到有序陣列(難度:半顆星)

資料插入到有序陣列(難度:半顆星)

問題描述:

輸入一個有序的整數序列(從小到大排列),然後再輸入一個需要插入到陣列中的整數,輸出插入資料之前和之後的數列。(要保證插入資料之後數列仍然是從小到大排列)。

例如:
輸入數列: 1 2 4 5
待插入資料: 3

插入資料後的資料: 1 2 3 4 5

參考程式碼:

#include <stdio.h>

int arr[100];

int main()
{
    char ch = ' ';
    int i, num, nCount = 0;

    printf("輸入一個數列: ");
    while (ch != '\n'
) { scanf_s("%d", &arr[nCount++]); ch = getchar(); } printf("輸入一個要插入的數: "); scanf_s("%d", &num); printf("插入資料前:\n"); for (i = 0; i < nCount; i++) printf("%d ", arr[i]); printf("\n"); for (i = nCount - 1; i >= 0 && num < arr[i]; i--) arr[i + 1
] = arr[i]; arr[i + 1] = num;//把數放到正確的位置 nCount++;//陣列長度+1 printf("\n插入資料前:\n"); for (i = 0; i < nCount; i++) printf("%d ", arr[i]); printf("\n"); return 0; }

執行結果:

這裡寫圖片描述