1144: 零起点学算法51——数组中删数(C语言)
题目:
源代码:
#include<stdio.h>
int main() {
int n, m, i, a[20];
while (scanf("%d", &n) != EOF) {
for (i = 0; i < n; i++) {
scanf("%d", &a[i]); // 输入n个整数
}
scanf("%d", &m); //输入m
for (i = 0; i < n; i++) {
if (m == a[i]) { // 数组中找到了整数m
n--; // n减1
for (; i < n; i++) {
a[i] = a[i + 1]; // 将以后的数向前移一位
}
}
}
if (n != 0) { // 删除后数组中至少有1个整数
for (i = 0; i < n - 1; i++) {
printf("%d ", a[i]);
}
printf("%d\n", a[i]); // 最后一个数换行
}
}
return 0;
}
测试数据:
数据1:
4 1 2 3 4
0
结果:
1 2 3 4
数据2:
4 1 2 3 4
1
结果:
2 3 4
数据3:
4 1 2 3 4
4
结果:
1 2 3
数据4:
1 2
2
结果:
注意:
- 多组输入
- 最后换行
- 删除后没有数的话,不需要输出任何东西
- 数组中没有m的话,原样输出
截图: