c语言二维数组函数题

编写函数,实现将二维数组行、列下标之和为偶数的数组元素输出,并计算这些元素之和。在main函数中验证。要求:二维数组的行数、列数、数组元素均在main函数中由键盘输入。

有两种方法,一种是直接定义一个大数组,第二种方法是使用二级指针。
(1)使用大数组的方法:

#include <stdio.h>
#include <stdlib.h>
//定义数组最大范围
#define MAX 100
int main()
{
    int a[MAX][MAX],i,j,sum=0;
    int row,col;
    printf("请输入行数和列数:");
    scanf("%d %d",&row,&col);
    printf("请输入%d*%d的二维数组:\n",row,col);
    for (i=0;i<row;i++)
    {
        for (j=0;j<col;j++)
        {
            scanf("%d",&a[i][j]);
        }
    }
    //输出元素
    for (i=0;i<row;i++)
    {
        for (j=0;j<col;j++)
        {
            if((i+j)%2==0)
            {
                printf("%d ",a[i][j]);
                sum += a[i][j];
            }
        }
    }
    //输出和
    printf("\nsum=%d\n",sum);
    return 0;
}

(2)使用二级指针的方式

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

int main()
{
    int** a;
    int i,j,sum=0;
    int row,col;
    printf("请输入行数和列数:");
    scanf("%d %d",&row,&col);
    a = (int**)malloc(sizeof(int*)*row);
    printf("请输入%d*%d的二维数组:\n",row,col);
    for (i=0;i<row;i++)
    {
        a[i] = (int*)malloc(sizeof(int)*col);
        for (j=0;j<col;j++)
        {
            scanf("%d",&a[i][j]);
        }
    }
    //输出元素
    for (i=0;i<row;i++)
    {
        for (j=0;j<col;j++)
        {
            if((i+j)%2==0)
            {
                printf("%d ",a[i][j]);
                sum += a[i][j];
            }
        }
    }
    //输出和
    printf("sum=%d\n",sum);

    //释放空间
    for(i=0;i<row;i++)
    {
        free(a[i]);
        a[i]=0;
    }
    free(a);
    a=0;
    return 0;
}

行列都直接输入了不是很简单吗,直接遍历,里面判断行列和是不是偶数,是偶数就存到新的数组中,在对新数组的元素遍历累加

你先试着自己做做啊,这是很简单的逻辑题,基本语法。
然后代码有问题贴出来,大家帮你分析。

直接让别人给你做题,对你和对大家,都很消极啊~

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632