本專欄持續輸出數據結構題目集,歡迎訂閱。
文章目錄
- 題目
- 代碼
題目
請編寫程序,將 n 個整數存入順序表,對任一指定的第 i 個位置,將這個位置上的元素從順序表中刪除。注意:i 代表位序,從 1 開始,不是數組下標。
輸入格式:
輸入首先在第一行給出正整數 n(≤10^4 );隨后一行給出 n 個 int 范圍內的整數,數字間以空格分隔;最后一行給出刪除位序 i,為 int 范圍內的整數。
輸出格式:
如果刪除的位置不合法,則不能刪除,在一行中輸出句子 錯誤:不存在這個元素。
無論是否刪除成功,都在一行中順序輸出表中的元素,每個元素后面跟一個空格。
輸入樣例 1:
5
1 2 3 4 5
3
輸出樣例 1:
1 2 4 5
輸入樣例 2:
5
4 3 6 8 0
0
輸出樣例 2:
錯誤:不存在這個元素。
4 3 6 8 0
代碼
#include <stdio.h>
#define MAX_SIZE 10000int main() {int n, arr[MAX_SIZE], i;// 讀取整數個數nscanf("%d", &n);// 讀取n個整數存入數組for (int j = 0; j < n; j++) {scanf("%d", &arr[j]);}// 讀取刪除位置iscanf("%d", &i);// 判斷刪除位置是否合法if (i < 1 || i > n) {printf("錯誤:不存在這個元素。\n");} else {// 將刪除位置之后的元素前移一位for (int j = i - 1; j < n - 1; j++) {arr[j] = arr[j + 1];}n--; // 更新表長}// 輸出表中所有元素for (int j = 0; j < n; j++) {printf("%d ", arr[j]);}printf("\n");return 0;
}