求一个二维数组a[5][5]中所有偶数之和,次对角线之和

问题遇到的现象和发生背景
遇到的现象和发生背景,请写出第一个错误信息
用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
运行结果及详细报错内容
我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%
我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”

遍历数组,判断元素为偶数求和就行了啊
//求一个二维数组a[5][5]中所有偶数之和,次对角线之和

#include <stdio.h>
int main()
{
    int a[5][5],i,j,sum1=0,sum2=0;
    for(i=0;i<5;i++)
        for(j=0;j<5;j++)
        {
            scanf("%d",&a[i][j]);
            if(a[i][j]%2==0)
                sum1 += a[i][j];
            if(i+j == 4)
                sum2 += a[i][j];
        }
    printf("偶数之和为:%d,次对角线之和为:%d\n",sum1,sum2);
    return 0;
}

可以使用以下代码来实现计算二维数组中偶数之和和次对角线之和的功能:


// 定义二维数组
const a = [  [1, 2, 3, 4, 5],
  [6, 7, 8, 9, 10],
  [11, 12, 13, 14, 15],
  [16, 17, 18, 19, 20],
  [21, 22, 23, 24, 25]
]

// 计算偶数之和
let evenSum = 0
for (let i = 0; i < a.length; i++) {
  for (let j = 0; j < a[i].length; j++) {
    if (a[i][j] % 2 === 0) {
      evenSum += a[i][j]
    }
  }
}

// 计算次对角线之和
let secondaryDiagonalSum = 0
for (let i = 0; i < a.length; i++) {
  secondaryDiagonalSum += a[i][a.length - i - 1]
}

console.log('偶数之和:', evenSum)
console.log('次对角线之和:', secondaryDiagonalSum)

可以使用两个 for 循环来遍历二维数组 a。在循环中,可以检查每个元素是否为偶数,如果是,就将它添加到偶数之和中。

#include <stdio.h>

int main() {
  int a[5][5];  // 定义一个 5x5 的二维数组
  int even_sum = 0;  // 用来存储偶数之和
  int i, j;

  // 遍历二维数组 a 的每个元素
  for (i = 0; i < 5; i++) {
    for (j = 0; j < 5; j++) {
      // 如果当前元素是偶数,就添加到偶数之和中
      if (a[i][j] % 2 == 0) {
        even_sum += a[i][j];
      }
    }
  }

  printf("The sum of all even numbers in a is %d\n", even_sum);

  return 0;
}

对于求次对角线之和,需要分别求出次对角线上的左上到右下的元素之和,和右上到左下的元素之和。可以通过在两个 for 循环中分别指定 i 和 j 的初始值和最大值来实现。

#include <stdio.h>

int main() {
  int a[5][5];  // 定义一个 5x5 的二维数组
  int diagonal_sum = 0;  // 用来存储次对角线之和
  int i, j;

  // 遍历二维数组 a 的次对角线上的元素
  for (i = 0; i < 5; i++) {
    for (j = 0; j < 5; j++) {
      // 如果当前元素位于次对角线上,就添加到次对角线之和中
      if (i + j == 4) {
        diagonal_sum += a[i][j];
      }
    }
  }

  printf("The sum of all elements on the secondary diagonal of a is %d\n", diagonal_sum);

  return 0;
}

为了求出次对角线上的右上到左下的元素之和,你需要改变 for 循环的初始值和最大值,例如:

#include <stdio.h>

int main() {
  int a[5][5];  // 定义一个 5x5 的二维数组
  int diagonal_sum = 0;  // 用来存储次对角线之和
  int i, j;

  // 遍历二维数组 a 的次对角线上的元素
  for (i = 4; i >= 0; i--) {
    for (j = 0; j < 5; j++) {
      // 如果当前元素位于次对角线上,就添加到次对角线之和中
      if (i == j) {
        diagonal_sum += a[i][j];
      }
    }
  }

  printf("The sum of all elements on the secondary diagonal of a is %d\n", diagonal_sum);

  return 0;
}
#include<stdio.h>

int main()
{
    int a[5][5] = {1,2,3,4,5,
                    6,7,8,9,10,
                    11,12,13,14,15,
                    16,17,18,19,20,
                    21,22,23,24,25};

    int i, j;
    int row = sizeof(a) / sizeof(a[0]);
    int column = sizeof(a[0]) / sizeof(a[0][0]);
    int sumA = 0, sumB = 0;
    for (i = 0; i < row; i++) 
    {
        for (j = 0; j < column; j++)
        {
            if (a[i][j] % 2 == 0)
            {
                sumA += a[i][j];
            }
            if ((i + j) == column - 1 )
            {
                sumB += a[i][j];
            }
        }
    }

    printf("偶数和=%d,次对角线和=%d\n", sumA, sumB);
    return 0;
}

#include <stdio.h>

int main() {

    int numbers[] = {10, 13, 6, 7, 4};;
    int sum = 0;
    int index;
    
    for (index = 0; index < 5; index++) {
        if (numbers[index]%2 == 0){
            sum += numbers[index];
        }
    }
    
    printf("The sum is %d\n", sum);
    
    return 0;
}





#include <stdio.h>


int main() {

    int numbers[] = {10, 13, 6, 7, 4};
    int sum = 0;
    int index;

    for (index = 0; index < 5; index++) {
        if (numbers[index]%2 != 0){
            continue;
        }
        sum += numbers[index];
    }

    printf("The sum is %d\n", sum);

    return 0;
}