用户先输入10个整数,再输入x,请删除所有的x再输出,如果x不在数组中,输出not found. 函数原型:int delete(int *a, int *n, int x); 其中,a是数组首元素地址,n是数组元素个数所在地址,x是要删除的整数。如果删除了x返回1,否则返回0。
时间: 2024-03-01 13:55:59 浏览: 12
根据您提供的问题,我可以给出如下的C语言函数实现:
```c
#include <stdio.h>
int delete(int *a, int *n, int x) {
int i, j, flag = 0;
for (i = 0, j = 0; i < *n; i++) {
if (a[i] != x) {
a[j++] = a[i];
} else {
flag = 1;
}
}
*n = j;
return flag;
}
int main() {
int a[10], n = 10, x, i, flag;
printf("请输入10个整数:\n");
for (i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
printf("请输入要删除的整数:\n");
scanf("%d", &x);
flag = delete(a, &n, x);
if (flag) {
printf("删除后的数组为:\n");
for (i = 0; i < n; i++) {
printf("%d ", a[i]);
}
} else {
printf("not found.");
}
return 0;
}
```
函数delete中,参数a是数组首元素地址,n是数组元素个数所在地址,x是要删除的整数。函数中用i和j两个指针遍历数组,如果a[i]不等于x,则将其复制到a[j]中,同时j向后移动一位;如果a[i]等于x,则将flag置为1,表示找到了要删除的元素。最后将数组大小更新为j,即为删除x后的大小。
在主函数中,先读入10个整数,再读入要删除的整数。调用delete函数删除x,并根据flag判断是否找到了要删除的元素。如果找到了,则输出删除后的数组;否则输出not found.
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)