怎么把数组不要的元素删除,不使用函数
时间: 2023-04-07 08:01:00 浏览: 35
可以使用循环遍历数组,将不需要的元素标记为一个特定的值(如-1),然后再遍历一次数组,将标记为特定值的元素删除即可。代码示例:
int arr[] = {1, 2, -1, 3, -1, 4};
int n = sizeof(arr) / sizeof(arr[0]);
int i, j;
// 标记不需要的元素
for (i = 0; i < n; i++) {
if (arr[i] == -1) {
continue;
}
for (j = i + 1; j < n; j++) {
if (arr[j] == -1) {
continue;
}
if (arr[i] == arr[j]) {
arr[j] = -1;
}
}
}
// 删除标记的元素
for (i = 0; i < n; i++) {
if (arr[i] == -1) {
for (j = i; j < n - 1; j++) {
arr[j] = arr[j + 1];
}
n--;
i--;
}
}
// 输出结果
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
输出结果为:1 2 3 4
相关问题
python删除数组中其他元素,只留下数值最大的元素,不使用Max函数
可以使用循环遍历数组,比较每个元素的大小,找到最大值,然后将除最大值外的其他元素从数组中删除。以下是一个示例代码:
```python
arr = [1, 3, 5, 2, 4]
max_val = arr[0]
max_idx = 0
for i in range(1, len(arr)):
if arr[i] > max_val:
max_val = arr[i]
max_idx = i
for i in range(len(arr) - 1, -1, -1):
if i != max_idx:
del arr[i]
print(arr)
```
在上述代码中,我们首先将数组的第一个元素赋值给`max_val`作为初始值,然后循环遍历数组中的每个元素,如果当前元素大于`max_val`,则更新`max_val`的值为当前元素,并记录当前元素的下标`max_idx`。接着我们使用一个倒序的循环,从数组末尾开始遍历,如果当前元素的下标不等于`max_idx`,则将该元素从数组中删除。最后输出`arr`即为只留下最大值元素的数组。
用数组写一个删除相同元素的函数
### 回答1:
好的,以下是用数组写一个删除相同元素的函数的示例代码:
```
function deleteDuplicates(arr) {
let result = [];
for (let i = 0; i < arr.length; i++) {
if (result.indexOf(arr[i]) === -1) {
result.push(arr[i]);
}
}
return result;
}
```
这个函数接收一个数组作为参数,遍历数组中的每个元素,如果当前元素在 `result` 数组中不存在,就将它添加到 `result` 数组中。最后返回去重后的 `result` 数组。
### 回答2:
要写一个删除数组中相同元素的函数,我们可以使用两个循环遍历数组中的元素。首先,我们从数组的第一个元素开始,逐个与后面的元素进行比较。如果发现有相同的元素,就将该元素从数组中删除。然后,增加一个计数器变量,记录已经删除的元素个数。最后,我们可以返回一个新的数组,其中包含了删除相同元素的原始数组。
以下是实现该函数的步骤:
1. 定义一个新函数,命名为`removeDuplicates`,该函数接受一个数组作为参数。
2. 定义一个新的空数组,命名为`result`。
3. 定义一个计数器变量`count`,将其初始值设为0。
4. 使用两个嵌套的循环遍历数组中的元素。外层循环从数组的第一个元素开始,内层循环从外层循环的下一个元素开始。这样可以逐个比较所有元素。
5. 如果发现相同的元素,则将它从原数组中删除,并将计数器变量`count`加1。
6. 在内层循环结束后,将当前元素添加到结果数组`result`中。
7. 最后,返回结果数组`result`。
下面是一个简单的例子:
```python
def removeDuplicates(arr):
result = []
count = 0
for i in range(len(arr)):
for j in range(i+1, len(arr)):
if arr[i] == arr[j]:
del arr[j]
count += 1
result.append(arr[i])
return result
```
这样,调用`removeDuplicates`函数传入一个数组作为参数,就可以得到包含删除相同元素后的新数组。
### 回答3:
写一个删除相同元素的函数可以通过遍历数组的方式实现。首先创建一个空的新数组用来存储不重复的元素,然后遍历原始数组,对于每一个元素判断是否在新数组中存在,若不存在则将其添加到新数组中。最后返回新数组即可。
具体的代码如下所示:
```python
def remove_duplicates(arr):
new_arr = []
for num in arr:
if num not in new_arr:
new_arr.append(num)
return new_arr
```
这个函数接受一个数组作为输入,并返回一个不包含重复元素的新数组。可以通过调用这个函数来删除原始数组中的相同元素,例如:
```python
arr = [1, 2, 3, 2, 1]
new_arr = remove_duplicates(arr)
print(new_arr) # 输出 [1, 2, 3]
```
该函数的时间复杂度为O(n^2),其中n是数组的长度。每次添加元素到新数组时需要遍历新数组判断元素是否已存在,所以整体的时间复杂度较高。如果对时间复杂度要求较高,还可以使用集合等其他数据结构来优化算法。