資料插入到有序陣列(難度:半顆星)
阿新 • • 發佈:2018-12-21
問題描述:
輸入一個有序的整數序列(從小到大排列),然後再輸入一個需要插入到陣列中的整數,輸出插入資料之前和之後的數列。(要保證插入資料之後數列仍然是從小到大排列)。
例如:
輸入數列: 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;
}
執行結果: