Сумму каждой строки матрицы записать в отдельный динамический массив (указатели) - C (СИ)
Формулировка задачи:
Я ввожу динамический двумерный массив через указатели. Потом мне нужно сумму каждой строки записать в отдельный динамический массив. У меня считает только последнюю строчку, как суммы записывать в разных адресах? Сумма у меня в *nw считается.
Листинг программы
- #include <stdio.h>
- #include <malloc.h>
- #include <locale.h>
- int main()
- { setlocale (LC_ALL, "Russian");
- int n, m, i, j, *mp, *nw, ;
- scanf("%d%d", &n, &m);
- mp = (int*)calloc(n*m,sizeof(int));
- for(i = 0; i < n; i++){
- nw = (int*)calloc(i,sizeof(int));
- for(j = 0; j < m; j++){
- scanf("%d", mp+i*m+j);
- *nw = *(mp+i*m+j) + *nw;
- }
- }
- for(i = 0; i < n; i++){
- for(j = 0; j < m; j++)
- printf("%d ", *(mp+i*m+j));
- printf("%d \n", *nw);
- }
- }
Решение задачи: «Сумму каждой строки матрицы записать в отдельный динамический массив (указатели)»
textual
Листинг программы
- //...
- nw = (int*) calloc(n, sizeof(int));
- for (i = 0; i < n; i++) {
- for (j = 0; j < m; j++) {
- scanf("%d", mp + i * m + j);
- *(nw+i) += *(mp + i * m + j);
- }
- }
- for (i = 0; i < n; i++) {
- for (j = 0; j < m; j++)
- printf("%d ", *(mp + i * m + j));
- printf("(sum = %d)\n", *(nw+i));
- }
- //...
Объяснение кода листинга программы
В этом коде используется язык программирования C. Код решает задачу суммирования каждой строки матрицы и сохранения результатов в отдельный динамический массив (указатели). Список действий в коде:
- Выделяется память под динамический массив
nw
для хранения суммы каждой строки матрицы с помощью функцииcalloc
. - В цикле
for
происходит чтение значений из матрицыmp
и суммирование в соответствующих позициях массиваnw
. - В цикле
for
происходит вывод значений матрицыmp
и соответствующих сумм из массиваnw
. Переменные в коде: n
- количество строк в матрице.m
- количество столбцов в матрице.mp
- адрес начала матрицы.nw
- адрес начала динамического массива для хранения сумм строк.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д