Дана матрица размера 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
- количество элементов в строке.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д