用c语言解决以下问题:题目描述 输入一个递增有序的整型数组A有n个元素,删除下标为i的元素,使其仍保持连续有序。注意,有效下标从0开始。 定义如下两个函数分别实现删除元素操作和数组输出操作。 void del(int a[], int n, int i); /*删除数组a中下标为i的元素*/ void PrintArr(int a[], int n); /*输出数组a的前n个元素*/ 输入 输入分三行,第一行是一个整数n(n<10),第二行是n个整数,第三行是要删除元素的下标i,i>=0。 输出 输出删除下标为i的元素后的数组元素,数据之间用空格隔开。 样例输入 6 1 3 5 7 9 11 3 样例输出 1 3 5 9 11
时间: 2023-02-06 18:41:53 浏览: 115
C语言程序设计-删除所有值为y的元素;数组元素中的值和y的值由主函数通过键盘输入.c
5星 · 资源好评率100%
可以使用以下代码来解决此问题:
```
#include <stdio.h>
// 删除数组a中下标为i的元素
void del(int a[], int n, int i) {
// 从下标为i的元素开始,向后遍历数组中的元素
for (int j = i; j < n - 1; j++) {
// 将下标为j+1的元素赋值给下标为j的元素
a[j] = a[j + 1];
}
}
// 输出数组a的前n个元素
void PrintArr(int a[], int n) {
for (int i = 0; i < n; i++) {
printf("%d ", a[i]);
}
}
int main() {
int n;
scanf("%d", &n);
int a[10];
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
int i;
scanf("%d", &i);
// 删除下标为i的元素
del(a, n, i);
// 输出删除后的数组
PrintArr(a, n - 1);
return 0;
}
```
输入格式和输出格式按照题目中给出的样例进行输入输出即可。
阅读全文