Подсчет суммы элементов в каждой строке и каждом столбце двумерного массива - C (СИ)
Формулировка задачи:
Составьте программу подсчета суммы элементов в каждой строке и каждом столбце двумерного массива. Число строк и столбцов произвольное. Массив задается с помощью функции случайных чисел.
Решение задачи: «Подсчет суммы элементов в каждой строке и каждом столбце двумерного массива»
textual
Листинг программы
#include <stdio.h>
#include <malloc.h>
#include <time.h>
#include <stdlib.h>
int main()
{
#define N 4
#define M 5
srand(time(NULL));
int sum_r[N] = {0, 0, 0, 0};
int sum_c[M] = {0, 0, 0, 0, 0};
int **matr;
int i, j;
matr = (int **) malloc(N * M * sizeof(int *));
for(i = 0; i < N; ++i)
matr[i] = (int *) malloc(M * sizeof(int));
for(i = 0; i < N; ++i)
for(j = 0; j < M; ++j)
matr[i][j] = rand()%5-1+1;
printf("2D Array:\n");
for(i = 0; i < N; ++i)
{
for(j = 0; j < M; ++j)
{
printf("%d ", matr[i][j]);
}
printf("\n");
}
for(i = 0; i < N; ++i)
for(j = 0; j < M; ++j)
sum_r[i] += + matr[i][j];
for(i = 0; i < M; ++i)
for(j = 0; j < N; ++j)
sum_c[i] = sum_c[i] + matr[j][i];
for(i = 0; i < N; ++i)
printf("Summa %d stroki: %d\n", i+1, sum_r[i]);
printf("\n");
for(i = 0; i < M; ++i)
printf("Summa %d strolbca: %d\n", i+1, sum_c[i]);
for(i = 0; i < N; ++i)
free(matr[i]);
free(matr);
return 0;
}