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的话,原样输出
截图:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步