c ++编程删除数组A的第i个元素(数组A的数据个数n<=30)后,依次输出删除后的数组A元素,若删除操作不合法则输出 “Delete failed”。
时间: 2024-09-11 20:09:45 浏览: 26
c语言编程题之数组操作合并两个有序数组.zip
在C++中,如果你想要删除数组A的第i个元素,需要注意的是,数组本身是静态大小的,所以我们不能直接删除指定位置的元素。但是,我们可以创建一个新的数组B,并将A中除了i位置以外的所有元素复制过去。以下是简单的步骤:
```cpp
#include <iostream>
void deleteElement(int A[], int n, int i) {
if (i < 0 || i >= n) { // 检查索引是否合法
std::cout << "Delete failed";
return;
}
// 如果数组长度大于1,创建新数组并将所有元素复制到新数组,跳过第i个元素
if (n > 1) {
int B[n - 1];
for (int j = 0; j < i; j++) {
B[j] = A[j];
}
for (int j = i + 1; j < n; j++) {
B[j - 1] = A[j];
}
// 输出新的数组B
for (int k = 0; k < n - 1; k++) {
std::cout << "After deletion at index " << i << ", element at index " << k << " is: " << B[k] << "\n";
}
} else {
std::cout << "Array too short to delete an element.\n";
}
}
// 示例用法
int main() {
int A[5] = {1, 2, 3, 4, 5};
int n = sizeof(A) / sizeof(A[0]);
int i = 2; // 要删除的元素的索引
deleteElement(A, n, i);
return 0;
}
```
阅读全文