這是一道經典的陣列操作題目。情境描述:Mr.true 參加面試,因為表現優異獲得特權,可以插隊到指定位置。我們需要模擬這個過程,將新元素插入現有序列的特定位置。
條件保證:編號不重複,N ≤ 10000
輸出插入後的隊伍面試編號序列,數字間以空格分隔。
輸入: 2 3 1 2 3 4 2 4 9 8 2 3 7 1 輸出: 1 4 2 3 7 9 8 2 3
第一組:原序列 [1,2,3],編號 4 插入第 2 位 → [1,4,2,3]
第二組:原序列 [9,8,2,3],編號 7 插入第 1 位 → [7,9,8,2,3]
這是基本的陣列插入操作。核心步驟:
#include <stdio.h>
int main() {
int T, N, P, Q;
int arr[10001]; // 足夠容納 N+1 個元素
scanf("%d", &T);
while (T--) {
scanf("%d", &N);
for (int i = 0; i < N; i++) {
scanf("%d", &arr[i]);
}
scanf("%d %d", &P, &Q);
// 從後往前移動元素,騰出位置 Q-1
for (int i = N; i >= Q; i--) {
arr[i] = arr[i-1];
}
arr[Q-1] = P; // 插入新元素
// 輸出結果
for (int i = 0; i <= N; i++) {
printf("%d", arr[i]);
if (i < N) printf(" ");
}
if (T > 0) printf("\n");
}
return 0;
}
這道題目考察基本的陣列操作與索引轉換,是程式設計入門的重要練習。