从键盘读入 n 个整数放入数组中,删除数组中所有值为 0 的元素,其后元素向数组首端移动。输出删除后数组中元素的个数并依次输出数组元素。
时间: 2023-05-31 17:17:47 浏览: 433
### 回答1:
首先,我们需要从键盘读入 n 个整数放入数组中:
```python
n = int(input("请输入整数个数:"))
arr = []
for i in range(n):
arr.append(int(input("请输入第{}个整数:".format(i+1))))
```
接下来,我们需要删除数组中所有值为 的元素,其后元素向数组首端移动:
```python
count =
for i in range(len(arr)):
if arr[i] == :
count += 1
else:
arr[i-count] = arr[i]
for i in range(count):
arr.pop()
```
最后,我们输出删除后数组中元素的个数并依次输出数组元素:
```python
print("删除后数组中元素的个数为:", len(arr))
print("删除后的数组为:", end="")
for i in arr:
print(i, end=" ")
```
完整代码如下:
```python
n = int(input("请输入整数个数:"))
arr = []
for i in range(n):
arr.append(int(input("请输入第{}个整数:".format(i+1))))
count =
for i in range(len(arr)):
if arr[i] == :
count += 1
else:
arr[i-count] = arr[i]
for i in range(count):
arr.pop()
print("删除后数组中元素的个数为:", len(arr))
print("删除后的数组为:", end="")
for i in arr:
print(i, end=" ")
```
### 回答2:
本题是一道数组操作题目。题目要求输入 n 个整数并放入数组中,然后将数组中所有值为 0 的元素删除,并将后面的元素向数组首端移动,最后输出删除后数组中元素的个数并依次输出数组元素。
我们可以通过以下步骤来完成这道题目:
1.读入 n 个整数,将它们放入数组中。
2.遍历数组,将数组中值为 0 的元素删除,并将后面的元素向数组首端移动。可以通过定义一个计数器来记录不为 0 的元素个数,然后将不为 0 的元素移到数组前面,同时计算新的元素个数。
3.输出新的元素个数,并依次输出数组元素。
我们可以使用以下程序来实现以上步骤:
[python]
n = int(input("请输入整数个数:"))
a = []
for i in range(n):
a.append(int(input("请输入第 %d 个整数:" %(i + 1))))
count = n
i = 0
while i < count:
if a[i] == 0:
count -= 1
for j in range(i, count):
a[j] = a[j + 1]
a[count] = 0
else:
i += 1
print("删除后数组元素个数为:", count)
print("删除后的数组元素为:")
for i in range(count):
print(a[i], end = " ")
[/python]
这个程序可以很好地完成题目要求的功能,并输出符合要求的结果。
总之,这道题目考察了数组的基本操作和遍历,需要我们熟练掌握数组的使用方法,并能够利用计数器等方法实现题目要求。
### 回答3:
该问题是一个数组操作问题,需要输入一个整数n表示将要读入的数字个数,然后再将这n个数读入一个数组中。接着需要将数组中所有值为0的元素删除,并且将其后的元素向数组的首端移动。最后输出删除操作后数组中元素的个数,并依次输出数组的元素。
首先,我们可以使用循环语句来读取输入的n个数字,并将它们存储到数组中。
其次,我们需要遍历数组,将值为0的元素删除。可以使用一个for循环语句,从数组头部开始查找数值为0的元素,一旦找到,在之后的循环中将其后的元素向数组头部移动一个位置,以此来达到删除0值的目的。
最后,我们需要输出删除操作后数组中元素的个数,并依次输出数组的元素。可以用一个for循环语句来遍历数组,输出数组中元素的个数,以及删除后的数组元素。
以下是一种可能的实现方案:
```
#include <stdio.h>
#define MAX_SIZE 100
int main() {
int arr[MAX_SIZE];
int n, i, j;
// 读入数字个数n和数组
scanf("%d", &n);
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
// 删除所有0值元素并将其后面的元素向数组头部移动
for (i = 0, j = 0; i < n; i++) {
if (arr[i] != 0) {
arr[j++] = arr[i];
}
}
n = j;
// 输出删除操作后数组中元素的个数
printf("%d\n", n);
// 输出删除后的数组元素
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
阅读全文