在c中从数组中删除偶数

在c中从数组中删除偶数,c,arrays,pointers,malloc,C,Arrays,Pointers,Malloc,您好,我正在用大约2小时的时间创建一个程序,该程序将从c语言中的dinamyc分配数组(使用malloc)中删除偶数。有人能帮我提供一些提示或创建代码吗 p、 这是我在这里的第一个主题,所以请随意给我一些关于如何正确发布问题的提示。假设您已经动态分配了一个由n个元素组成的数组并对其进行了初始化 在这种情况下,删除具有偶数值的元素的函数可以如下所示 size_t remove_even( int *a, size_t n ) { size_t m = 0; for ( size_

您好,我正在用大约2小时的时间创建一个程序,该程序将从c语言中的dinamyc分配数组(使用malloc)中删除偶数。有人能帮我提供一些提示或创建代码吗


p、 这是我在这里的第一个主题,所以请随意给我一些关于如何正确发布问题的提示。

假设您已经动态分配了一个由n个元素组成的数组并对其进行了初始化

在这种情况下,删除具有偶数值的元素的函数可以如下所示

size_t remove_even( int *a, size_t n )
{
    size_t m = 0;

    for ( size_t i = 0; i < n; i++ )
    {
        if ( a[i] % 2 != 0 )
        {
            if ( i != m ) a[m] = a[i];
            ++m;
        }
    }

    return m;
}
size_t m = remove_even( p, n );

for ( size_t i = 0; i < m; i++ ) printf( "%d ", a[i] );
printf( "\n" );
这是一个演示程序

#include <stdlib.h>
#include <stdio.h>

size_t remove_even( int a[], size_t n )
{
    size_t m = 0;

    for ( size_t i = 0; i < n; i++ )
    {
        if ( a[i] % 2 != 0 )
        {
            if ( i != m ) a[m] = a[i];
            ++m;
        }
    }

    return m;
}

#define N   10

int main( void )
{
    int *a = malloc( N * sizeof( int ) );

    for ( size_t i = 0; i < N; i++ ) a[i] = i;

    for ( size_t i = 0; i < N; i++ ) printf( "%d ", a[i] );
    printf( "\n" );

    size_t m = remove_even( a, N );

    int *tmp = realloc( a, m * sizeof( int ) );

    if ( tmp != NULL ) a = tmp;

    for ( size_t i = 0; i < m; i++ ) printf( "%d ", a[i] );
    printf( "\n" );

    free( a );
}

在您尝试编写代码之前,您需要检查一些东西,但我发现没有您使用的代码

这不是一个教程网站,所以这意味着你应该向我们展示一些实际编译的代码,并在这里询问这些代码是否存在一些问题

在此之前的任何方式,此代码都应该让您了解如何检查一个数字是
奇数
还是
偶数

#include<stdio.h>
#include<stdlib.h>

int main(void){
    int n;

    printf("Enter an integer:>  ");
    if((scanf("%d", &n)) != 1){
        printf("Error, Fix it!\n");
        exit(1);
    }

    if (n%2 == 0){
        printf("Even\n");
    }else{
        printf("Odd\n");
    }

    return 0;
}
#包括
#包括
内部主(空){
int n;
printf(“输入整数:>”;
如果((scanf(“%d”,&n))!=1){
printf(“错误,修复!\n”);
出口(1);
}
如果(n%2==0){
printf(“偶数”);
}否则{
printf(“奇数”);
}
返回0;
}

这里的整个故事不是关于检查数组中的数字是否是
奇数
偶数
,而是要找到一种方法来检查一个数字是否是
奇数
偶数
,然后才应该检查数组中是否有
奇数
偶数。我希望你能理解我的观点。

到目前为止你有什么看法?帮助意味着纠正错误,以便从中学习。替别人做事有帮助nobody@AnoopKanyan这是C++没有显示你的代码。加布里埃尔请不要恨我,但是如果你不真正告诉我们你需要帮助,你不应该请求帮助。你为什么不给我们看你的代码?
0 1 2 3 4 5 6 7 8 9 
1 3 5 7 9 
#include<stdio.h>
#include<stdlib.h>

int main(void){
    int n;

    printf("Enter an integer:>  ");
    if((scanf("%d", &n)) != 1){
        printf("Error, Fix it!\n");
        exit(1);
    }

    if (n%2 == 0){
        printf("Even\n");
    }else{
        printf("Odd\n");
    }

    return 0;
}