C语言 指针和函数的综合应用

编写函数删除数组参数指定的元素,函数的原型为:

void deldata (int a[], int *num, int n) ;

其中a为数组,num为数组元素个数的指针,n为要删除的数。

最后编写主函数来输入和输出数组a。

例如:数组中有10个元素,输入为1,2,4,2,7,9,0,2,5, n的值为2,删除后输出数组元素应该为1,3,4,7,9,0,5。

img

// ConsoleApplication9.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include <malloc.h>

void deldata(int a[], int* num, int n) {
    int* tmp = (int*)malloc(sizeof(int) * (*num - 1));
    int count = 0;
    *num=*num-1;
    for (int i = 0; i < *num+1; i++)
    {
        if (a[i]!=n)
        {
            *(tmp + count) = a[i];
            count++;
            //printf("%d", i);
        }
    }
    a = tmp;
}

int main()
{
    int k = 10;
    int a[] = { 1,2,3,4,2,7,9,0,2,5 };
    deldata(a, &k, 2);
    for (int i = 0; i < k; i++)
    {
        printf("%d", a[i]);
    }
}


不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^