从键盘读入 n 个整数放入数组中,删除数组中所有值为 0 的元素,其后元素向数组首端移动。输出删除后数组中元素的个数并依次输出数组元素
时间: 2024-05-10 19:17:27 浏览: 14
以下是一个 C++ 的程序实现:
```cpp
#include <iostream>
using namespace std;
int main() {
const int MAXN = 10000; // 数组最大长度
int a[MAXN], n; // 数组 a 和元素个数 n
cin >> n;
for (int i = 0; i < n; i++) {
cin >> a[i];
}
int k = 0; // 记录非零元素的个数
for (int i = 0; i < n; i++) {
if (a[i] != 0) {
a[k++] = a[i];
}
}
cout << k << endl;
for (int i = 0; i < k; i++) {
cout << a[i] << " ";
}
cout << endl;
return 0;
}
```
该程序首先读入元素个数 `n` 和数组元素,然后遍历数组,将非零元素向数组首端移动,并记录非零元素的个数 `k`。最后输出 `k` 和删除后的数组元素。
相关问题
从键盘读入 n 个整数放入数组中,删除数组中所有值为 0 的元素,其后元素向数组首端移动。输出删除后数组中元素的个数并依次输出数组元素。
### 回答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;
}
```
c语言编程:从键盘读入 n 个整数放入数组中,删除数组中所有值为 0 的元素,其后元素向数组首端移动。输出删除后数组中元素的个数并依次输出数组元素。
下面是一个简单的 C 语言代码实现:
```c
#include <stdio.h>
int main() {
int n, i, j, count = 0;
printf("请输入数组长度 n:");
scanf("%d", &n);
int arr[n]; // 定义数组
printf("请输入 %d 个整数:", n);
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]); // 从键盘读入 n 个整数
if (arr[i] != 0) {
arr[count] = arr[i]; // 删除数组中所有值为 0 的元素,并将其后元素向数组首端移动
count++;
}
}
printf("删除后数组中元素的个数为:%d\n", count);
printf("删除后数组中的元素为:");
for (i = 0; i < count; i++) {
printf("%d ", arr[i]); // 依次输出数组元素
}
printf("\n");
return 0;
}
```
运行程序,输入数组长度和数组元素,即可输出删除后的数组元素。例如:
```
请输入数组长度 n:10
请输入 10 个整数:3 0 5 0 2 0 4 1 0 6
删除后数组中元素的个数为:5
删除后数组中的元素为:3 5 2 4 1
```
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)