1.返回新的数组
#include "stdio.h"
//删除数组中的第几个元素
//len:数组长度
//index:要删除第几个元素
int* arrDelete(int* arr,int index,int len){
int newLen = len - 1;
int newArr[newLen];
for (int i = 0; i < newLen; i++) {
if (i < index) {
newArr[i] = arr[i];
}else{
newArr[i] = arr[i+1];
}
}
return newArr;
}
int main()
{
int numArr[5] = {
1,2,3,4,5};
printf("删除前---------------\n");
for (int i = 0; i < 5; i++) {
printf("%d\n",numArr[i]);
}
int* newArr = arrDelete(numArr,2,5);
printf("删除后---------------\n");
for (int i = 0; i < 4; i++) {
printf("%d\n",newArr[i]);
}
}
打印结果:
删除前---------------
1
2
3
4
5
删除后---------------
1
2
4
5
Program ended with exit code: 0
2.还是原来的数组
//删除数组中的第几个元素
//len:数组长度
//index:要删除第几个元素
void arrDelete(int* arr,int index,int len){
for (int i = 0; i < len-1; i++) {
if (i < index) {
arr[i] = arr[i];
}else{
arr[i] = arr[i+1];
}
}
arr[len-1] = EOF;
}
int main()
{
int arr[5] = {
1,2,3,4,5};
printf("删除前---------------\n");
for (int i = 0; i < 5; i++) {
printf("%d\n",arr[i]);
}
arrDelete(arr,2,5);
printf("删除后---------------\n");
for (int i = 0; i < 5; i++) {
if (arr[i] == EOF) {
break;;
}
printf("%d\n",arr[i]);
}
}
打印结果:
删除前---------------
1
2
3
4
5
删除后---------------
1
2
4
5
Program ended with exit code: 0