将数组arr的元素与删除的元素进行对比,如果不同,可以直接输出;如果相同,将不同的元素放在另一个数组里面,这时循环i会跳出来,在下个循环里面使用,把arr下标加1放在arr1数组里面,因为删除了一个元素,所以循环体条件会少一个。
#include <stdio.h> int main() { int n = 0; int arr[50] = { 0 }; int arr1[50] = { 0 }; scanf("%d", &n); int i = 0; for (int i = 0; i < n; i++) { scanf("%d", &arr[i]); } int m = 0; scanf("%d", &m); for (i = 0; i < n; i++) { if (arr[i] != m) { arr1[i] = arr[i]; printf("%d ", arr1[i]); } } for (int j = i; j < n - 1; j++) { arr1[j] = arr[j + 1]; printf(" %d ", arr1[j]); } return 0; }