a[j]=a[j+1]覆盖目标数的时候数组越界了
修改如下,供参考:
#include<stdio.h>
int main() {
int n, m, a[20], i, j;
while (scanf("%d", &n) != EOF) {
for (i = 0; i < n; i++)
scanf("%d", &a[i]);
scanf("%d", &m);
for (i = j = 0; i < n; i++) {
if (a[i] - m)
a[j++] = a[i];
}
if (j == 0) //输出删除m后的数组
printf(" ");
else {
for (i = 0; i < j; i++)
printf(i == 0 ? "%d" : " %d", a[i]);
}
}
return 0;
}