Дана матрица размера M x N. Найти суммы элементов всех ее четных строк и нечетных столбцов - C (СИ)
Формулировка задачи:
Ребята, помогите пожалуйста. Не могу понять, почему не работает. Точнее она работает, но не до конца. 2х2 считает верно, 3х3 тоже верно считает, 4х4 - частично верно. почему дальше не правильно?
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int main()
{
int m, n, a[m][n];
int i, j;
int Sum_Stol=0, Sum_Str=0;
printf ("\n M = ");
scanf ("%d", &i);
printf (" N = ");
scanf ("%d", &j);
printf ("\n");
for (m=0; m<i; m++)
for (n=0; n<j; n++)
{
printf (" a[%d][%d] =", m+1, n+1);
scanf ("%d", &a[m][n]);
}
for (m=0; m<i; m++)
for (n=0; n<j; n++)
if((m+1)%2==0)
Sum_Str= Sum_Str + a[m][n];
for (m=0; m<i; m++)
for (n=0; n<j; n++)
if ((n+1)%2!=0)
Sum_Stol= Sum_Stol + a[m][n];
printf ("\n Strok - %d", Sum_Str);
printf ("\n Stolbzov - %d\n", Sum_Stol);
system ("PAUSE");
return 0;
}Решение задачи: «Дана матрица размера M x N. Найти суммы элементов всех ее четных строк и нечетных столбцов»
textual
Листинг программы
for(int i = 0; i < n; i++)
{
a[i] = (int *)malloc(j*sizeof(int));
}
Объяснение кода листинга программы
В данном коде выделяется память под матрицу размером M x N, где M - количество строк, N - количество столбцов. Для этого используется оператор malloc, который выделяет память под целочисленный массив размером j (количество элементов в строке). В цикле for происходит выделение памяти под каждую строку матрицы. Переменная i обозначает номер текущей строки, а переменная j - количество элементов в строке.