Подсчитать сумму квадратов четных элементов.(Двумерный массив)

Подсчитать сумму квадратов четных элементов.(Двумерный массив)

помогите исправить условие if. Почему то выводит не правильный результат

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication15
{
    class Program
    {
        static void Main(string[] args)
        {
            int n;
            int m;
            Console.WriteLine("Введите размерность массива");
            Console.Write("n=");
            n = int.Parse(Console.ReadLine());
            Console.Write("m=");
            m = int.Parse(Console.ReadLine());
            Random ran = new Random();
            // Объявляем двумерный массив
            int[,] myArray = new int[n, m];
            // Инициализируем данный массив
            for (int i = 0; i < n;i++ )
            {
                for (int j = 0; j < m; j++)
                {
                    myArray[i, j] = ran.Next(1, 15);
                    Console.Write("{0}\t",myArray[i,j]);
                   
                }

                Console.WriteLine();
            }
            int res = 0;
            for (int i = 0; i < myArray.GetLength(0); i++)
            {

                for (int j = 0; j < myArray.GetLength(1); j++)
                {
                    if (myArray[i, j] % 2 == 0)
                    
                        res += myArray[i, j] * myArray[i, j];
                        Console.WriteLine("Сумма квадратов четных элементов={0}", res);
                    
                    
                }

            }
            
            
            
                Console.ReadKey();
        }
    }
}

Не ас в C#, наверное по этому и возник вопрос.
Почему при чтении потока ввода используется оператор Parse а не Convert?

Да они обычно то же самое делают. c# - What's the main difference between int.Parse() and Convert.ToInt32 - Stack Overflow

а что выводит?

ИМХО так должно быть

     if (i % 2 == 0 && j % 2 == 0)

и надо вынести

за цикл

почему то результат выдает не тот который нужно(

у вас сейчас так написано?

да

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication15
{
    class Program
    {
        static void Main(string[] args)
        {
            int n;
            int m;
            Console.WriteLine("Введите размерность массива");
            Console.Write("n=");
            n = int.Parse(Console.ReadLine());
            Console.Write("m=");
            m = int.Parse(Console.ReadLine());
            Random ran = new Random();
            // Объявляем двумерный массив
            int[,] myArray = new int[n, m];
            // Инициализируем данный массив
            for (int i = 0; i < n;i++ )
            {
                for (int j = 0; j < m; j++)
                {
                    myArray[i, j] = ran.Next(1, 15);
                    Console.Write("{0}\t",myArray[i,j]);
                   
                }

                Console.WriteLine();
            }
            int res = 0;
            for (int i = 0; i < myArray.GetLength(0); i++)
            {

                for (int j = 0; j < myArray.GetLength(1); j++)
                {
                    if (i % 2 == 0 && j % 2 == 0)
                    
                        res += myArray[i, j] * myArray[i, j];
                        
                    
                    
                }
Console.WriteLine("Сумма квадратов четных элементов={0}", res);    
            }
        
            
            
                Console.ReadKey();
        }
    }
}

Возможно, что элементы массива выводятся в консоль не в том порядке, в котором ожидается. То есть, не понятно, какие числа были в чётных ячейках.
Попробуйте временно убрать рандом и посмотрите, что будет.
Попробуйте сначала просто вывести все чётные элементы массива и сравните их с тем, что должно быть.
И кстати. В двухмерном массиве 2х2 чётным будет только первый (нулевой) элемент, вроде :thinking:

            for (int i = 0; i < myArray.GetLength(0); i++)
            {

                for (int j = 0; j < myArray.GetLength(1); j++)
                {
                    if (i % 2 == 0 && j % 2 == 0) //условие сработает только один раз
                    {
                        Console.WriteLine(myArray[i, j]);
                    }

                }

            }

когда i и j равны 0
Тогда у вас на скриншоте всё правильно. 11 * 11 == 121

ТС должен четко уяснить - четные элементы это одно (на том скриншоте нет ни одного четного элемента), а элементы с четными обоими индексами это другое, да, и там только один такой элемент

Так это зависит от того что именно надо, четные индексы или четные значения.

И какие индексы считать четными в двумерном массиве непонятно, могут быть разные варианты.

А что если так?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication17
{
    class Program
    {
        static void Main(string[] args)
        {
            int n, m;
            int res = 0;
            Console.WriteLine("Введите размерность массива");
            Console.Write("n=");
            n = int.Parse(Console.ReadLine());
            Console.Write("m=");
            m = int.Parse(Console.ReadLine());
            int[,] myArray = new int[n, m];
            //Запалняем массив
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < m; j++)
                {
                    Console.Write("myArray[{0},{1}]=",i+1,j+1);
                    myArray[i, j] = int.Parse(Console.ReadLine());
                }

            }
            //Выводим получившиеся массив
            Console.WriteLine("Исходынй массив:");
                for (int i = 0; i < myArray.GetLength(0); i++, Console.WriteLine())
            {

                for (int j = 0; j < myArray.GetLength(1); j++)
                {
                    
                    Console.Write("{0,5}",myArray[i,j]);
                }

            }
            // Ищем четные элементы массива
                for (int i = 0; i < myArray.GetLength(0); i++)
                {
                    for (int j = 0; j < myArray.GetLength(1); j++)
                    {
                        if (myArray[i, j] % 2 == 0)// Проверяем условия на четность элемента
                        
                            res += myArray[i, j] * myArray[i, j];//Считаем все четные элементы
                        
                    }   
                }
                Console.WriteLine("Сумма квадратов четных элементов={0}", res);
            
                Console.ReadKey();
        }
    }
}


Вам нужны чётные индексы или чётные значения?

В задании толком не оговорено что именно нужно найти
Мой 12 вариант:

Там слова индексов и в помине нет )

Покажи преподавателю оба варианта и скажи что задание поставлено не корректно

Хорошо
Спасибо за помощь