【问题描述】编写函数实现删除一维整型数组中指定元素,在主函数输入数组和输出数组(假设数组元素各不相同)。 【输入形式】输入删除前的元素个数和数组元素,输入待删除的元素 【输出形式】输出删除后的数组元素 【样例输入】 5 1 3 4 5 2 3 【样例输出】 after delete: 1 4 5 2 【样例说明】 【评分标准】
时间: 2023-11-28 09:05:15 浏览: 100
以下是C++的代码实现:
```cpp
#include<iostream>
using namespace std;
void deleteElement(int arr[], int& n, int elem)
{
int index = -1; //记录待删除元素的下标
for(int i=0; i<n; i++)
{
if(arr[i] == elem)
{
index = i;
break;
}
}
if(index == -1) //未找到待删除元素
{
cout<<"Element "<<elem<<" not found in the array."<<endl;
return;
}
for(int i=index; i<n-1; i++) //将后面的元素前移
{
arr[i] = arr[i+1];
}
n--; //数组长度减1
}
int main()
{
int n, arr[100], elem;
cout<<"Enter the number of elements: ";
cin>>n;
cout<<"Enter the elements: ";
for(int i=0; i<n; i++)
{
cin>>arr[i];
}
cout<<"Enter the element to be deleted: ";
cin>>elem;
deleteElement(arr, n, elem);
cout<<"After deletion, the array is: ";
for(int i=0; i<n; i++)
{
cout<<arr[i]<<" ";
}
cout<<endl;
return 0;
}
```
首先输入数组的长度和元素,再输入待删除的元素。然后调用 `deleteElement()` 函数进行删除操作,最后输出删除后的数组。
函数中先遍历数组找到待删除元素的下标,如果没找到则返回提示信息。如果找到了,则将该元素后面的元素前移,最后将数组长度减1。
阅读全文