#c语言题 要求用函数调用实现

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

双重循环读取二维数组的元素用if判断行列下标之和为偶数
你题目的解答代码如下:

#include <stdio.h>
int df(int a[100][100],int x,int y)
{
    int i,j,sum = 0;
    for (i = 0; i < x; i++)
    {
        for (j = 0; j < y; j++)
        {
            if ((i + j) % 2 == 0)
            {
                printf("%d ", a[i][j]);
                sum += a[i][j];
            }
        }
    }
    return sum;
}
int main()
{
    int x,y,i,j,sum;
    printf("请输入行列数:");
    scanf("%d%d", &x, &y);
    printf("请输入数组:\n");
    int a[100][100];
    for (i = 0; i < x; i++)
    {
        for (j = 0; j < y; j++)
        {
            scanf("%d", &a[i][j]);
        }
    }
    sum = df(a,x,y);
    printf("snm = %d", sum);
}

img

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

遍历时通过计算数组的下标和作为判断依据输出即可
代码示例如下
有帮助望采纳~

#include <stdio.h>
int fun(int a[10][10])
{
    int result = 0;
    for (int i = 0; i < 10; i++)
    {
        for (int j = 0; j < 10; j++)
        {
            if ((i + j) % 2 == 0)
            {
                printf("%d ", a[i][j]);
                result += a[i][j];
            }
        }
        printf("\n");
    }
    return result;
}
int main(int argc, char const *argv[])
{
    int a[10][10];
    for (int i = 0; i < 10; i++)
    {
        for (int j = 0; j < 10; j++)
        {
            scanf("%d", &a[i][j]);
        }
    }
    int result = fun(a);
    printf("result = %d", result);
};

如果要求行数列数都手动输入,即可考虑动态数组,利用二级指针和malloc可实现。剩下的应该不难了吧?