1144: 零起点学算法51——数组中删数(C语言)

题目:

题目来源WUSTOJ

源代码:

#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

结果:


注意:

  1. 多组输入
  2. 最后换行
  3. 删除后没有数的话,不需要输出任何东西
  4. 数组中没有m的话,原样输出

截图:

1144: 零起点学算法51——数组中删数(截图)

 

 

posted @ 2019-01-26 18:08  wowpH  阅读(716)  评论(0编辑  收藏  举报