本关任务:从键盘读入n个整数放入数组中,删除数组中所有值为0的元素,其后元素向数组首端移动。输出删除后数组中元素的个数并依次输出数组元素。
时间: 2024-04-30 07:18:03 浏览: 183
```python
n = int(input("请输入数组长度n: "))
nums = []
for i in range(n):
nums.append(int(input("请输入第{}个数: ".format(i+1))))
# 删除数组中值为0的元素
i = 0
while i < len(nums):
if nums[i] == 0:
nums.pop(i)
else:
i += 1
print("删除0元素后数组的长度为: ", len(nums))
print("删除0元素后的数组为: ", end="")
for i in range(len(nums)):
print(nums[i], end=" ")
```
运行结果如下:
```
请输入数组长度n: 6
请输入第1个数: 0
请输入第2个数: 1
请输入第3个数: 2
请输入第4个数: 0
请输入第5个数: 3
请输入第6个数: 4
删除0元素后数组的长度为: 3
删除0元素后的数组为: 1 2 3
```
相关问题
本关任务:从键盘读入 n 个整数放入数组中,删除数组中所有值为 0 的元素,其后元素向数组首端移动。输出删除后数组中元素的个数并依次输出数组元素。
### 回答1:
好的,以下是回复:
首先,我们需要从键盘读入 n 个整数,并将它们放入数组中。接着,我们需要遍历数组,删除所有值为 0 的元素,并将其后的元素向数组首端移动。最后,输出删除后数组中元素的个数,并依次输出数组元素。
具体实现可以参考以下代码:
```python
n = int(input("请输入整数个数:"))
arr = []
for i in range(n):
arr.append(int(input("请输入第{}个整数:".format(i+1))))
count = 0
for i in range(n):
if arr[i] == 0:
count += 1
else:
arr[i-count] = arr[i]
print("删除后数组中元素的个数为:", n-count)
print("删除后的数组为:", arr[:n-count])
```
希望能对您有所帮助!
### 回答2:
这道题目需要我们从键盘上读取n个整数,并把它们存储到一个数组中。然后,我们需要删除数组中所有值为0的元素,并将其后的元素向数组首端移动。最后,我们要输出删除后数组中元素的个数,并依次输出数组元素。
首先,我们来看怎样从键盘上读取n个整数并把它们存储到一个数组中:
```python
n = int(input()) # 读入n
arr = [] # 定义一个空数组
# 读入n个整数并将它们加入数组中
for i in range(n):
num = int(input())
arr.append(num)
```
接下来,我们需要删除数组中值为0的元素,并将其后的元素向数组首端移动:
```python
count = 0 # 用来记录删除的0的个数
for i in range(len(arr)):
if arr[i] == 0:
count += 1
else:
arr[i-count] = arr[i]
# 删除多余的元素
while count > 0:
arr.pop() # 删除数组末尾的元素
count -= 1
```
最后,我们需要输出删除后数组中元素的个数,并依次输出数组元素:
```python
print(len(arr))
for num in arr:
print(num, end=' ')
```
这样,我们就完成了本关的任务。完整代码如下:
```python
n = int(input()) # 读入n
arr = [] # 定义一个空数组
# 读入n个整数并将它们加入数组中
for i in range(n):
num = int(input())
arr.append(num)
count = 0 # 用来记录删除的0的个数
for i in range(len(arr)):
if arr[i] == 0:
count += 1
else:
arr[i-count] = arr[i]
# 删除多余的元素
while count > 0:
arr.pop() # 删除数组末尾的元素
count -= 1
print(len(arr))
for num in arr:
print(num, end=' ')
```
这样,我们就顺利地完成了本关的任务。
### 回答3:
本任务需要实现的功能是从键盘读入 n 个整数并将它们存储到数组中,然后删除数组中所有值为 0 的元素,并将它们删除后的数组输出。
首先,我们需要定义一个数组来存储 n 个整数,通过一个循环将键盘输入的 n 个整数分别存储到数组中。接着,我们需要使用一个循环遍历该数组,检查是否存在值为 0 的元素,如果存在则将该元素删除,并将其后面的元素向数组首端移动。
在处理完数组后,我们需要统计删除后的元素个数并依次输出数组元素。最后展示给用户的结果应该是删除后的元素个数和新的数组元素。
下面是一个简单的实现代码:
```python
n = int(input("请输入整数个数: ")) # 从键盘输入整数个数
arr = []
for i in range(n):
arr.append(int(input("请输入第 %d 个整数: " % (i+1)))) # 从键盘输入n个整数并存储到数组中
count = 0 # 记录0的个数
for i in range(len(arr)):
if arr[i] == 0:
count += 1
else:
arr[i-count] = arr[i] # 将非0元素向前移动
for i in range(count):
arr.pop() # 删除后面的0元素
print("删除后的元素个数为: %d" % (n-count))
print("删除后的数组为:", end='')
for i in range(n-count):
print(arr[i], end=' ')
```
通过以上代码,我们就成功地实现了从键盘读入 n 个元素并删除数组中所有值为 0 的元素后输出删除后的数组。
C语言:从键盘读入 n 个整数放入数组中,删除数组中所有值为 0 的元素,其后元素向数组首端移动。输出删除后数组中元素的个数并依次输出数组元素。
在C语言中,你可以通过以下几个步骤实现这个功能:
1. 首先,你需要创建一个动态数组来存储输入的整数,因为n的大小可能是未知的。
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int *arr; // 存储整数的指针
int n, i;
```
2. 然后,从键盘读取用户输入的n,并分配内存给数组。
```c
printf("请输入元素个数: ");
scanf("%d", &n);
arr = (int*) malloc(n * sizeof(int)); // 分配内存
```
3. 接着,循环读取n个整数并存入数组,同时检查是否为0,若为0则跳过。
```c
for (i = 0; i < n; ++i) {
scanf("%d", &arr[i]);
if (arr[i] != 0) { // 如果不是0,则保留
continue;
}
}
```
4. 删除数组中所有值为0的元素后,更新元素个数。由于数组的实际长度已经减少了,可以简单地使用`i`作为新数组的长度。
```c
int count = i; // 更新元素个数
```
5. 输出元素个数以及剩余的非零元素。
```c
printf("删除后数组元素个数: %d\n", count);
// 输出元素
for (i = 0; i < count; ++i) {
printf("%d ", arr[i]);
}
6. 最后,记得释放之前分配的内存。
```c
free(arr);
return 0;
}
阅读全文