输入一个数N,输入m(m小于N),删除数组中序号为m的数,其后面的数要依次前移 c语言
时间: 2024-11-06 07:19:34 浏览: 17
在C语言中,你可以通过遍历数组并更新元素的方式来删除指定索引 `m` 的数及其后的元素。这里是一个简单的示例程序,它演示了如何完成这个操作:
```c
#include <stdio.h>
void deleteElement(int arr[], int n, int m) {
// 如果 m 小于 0 或者大于等于 n,直接返回,因为无法删除
if (m < 0 || m >= n)
return;
// 遍历从 m 开始到数组末尾的所有元素
for (int i = m; i < n - 1; ++i) {
// 把当前元素移到下一个位置
arr[i] = arr[i + 1];
}
// 数组的长度减一,表示最后一个元素已不需要
n--;
}
// 测试函数
int main() {
int N;
printf("请输入数组的长度 N: ");
scanf("%d", &N);
int arr[N], m;
printf("请输入数组元素及需要删除的位置 m: ");
for (int i = 0; i < N; ++i) {
scanf("%d", &arr[i]);
}
scanf("%d", &m);
deleteElement(arr, N, m);
printf("删除位置 %d 后的数组为: ", m);
for (int i = 0; i < N; ++i) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
在这个程序中,`deleteElement` 函数接收一个整型数组、数组长度和需要删除的位置作为参数。如果给定的 `m` 越界,则不做任何处理;否则,它会将 `m` 之后的所有元素向左移动一位。
运行此程序后,用户会被提示输入数组的长度、每个元素以及需要删除的位置,然后程序会输出修改后的数组。
阅读全文