Подскажите как найти элемент матрицы по каждому столбцу? - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Вот код:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define n 4
#define m 5
 
int main()
{
int X[n][m];
int B[n];
int i,j,v;
srand(time(0));
for (i=0; i<n;i++)
for (j=0; j<m;j++)
X[i][j] = rand()%50-20;
printf("Massiv  \n");
for (i=0; i<m;i++) {
for (j=0; j<n;j++)
printf("%4d",X[i][j]);
printf("\n");}
printf("Massiv B \n");
for(i=0; i<n; i++) {
for(j=0; j<m; j++) {
if (X[i][j] > 0 && X[i][j]%5 == 0)
B[n] += X[i][j];}
printf ("%3d",B[n]);}
return 0;
}
Помогите исправить шибки) Так как поиск производится по всей матрице, а нужно по каждому столбцу) Буду признателен за помощь)

Решение задачи: «Подскажите как найти элемент матрицы по каждому столбцу?»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define n 4
#define m 5
 
/*
 Как принято в математике, первое число - строки, второе - столбцы
 Т.е. n столбцов, m строк
*/
 
int main()
{
int X[n][m];
int B[m];
int i,j,v;
srand(time(0));
 
/* Очищаем B[] */
for (i=0; i<m; i++) {B[i]=0;}
 
/* Рандомно забиваем масив. Последовательность не важна */
for (i=0; i<n;i++)
for (j=0; j<m;j++)
X[i][j] = rand()%50-20;
 
/* Выводим массив. Вывод по строчкам */
printf("Massiv  \n");
for (i=0; i<n;i++) {
for (j=0; j<m;j++)
printf("%4d",X[i][j]);
printf("\n");}
 
/* Расчет и вывод массива B[] */
printf("Massiv B \n");
for(j=0; j<m; j++)
{
for(i=0; i<n; i++)
    {
    if (X[i][j] > 0 && X[i][j]%5 == 0)
    B[j] += X[i][j];
    }
printf ("%3d",B[j]);
}
 
return 0;
}

Объяснение кода листинга программы

В этом коде происходит следующее:

  1. Объявляются переменные:
    • X[n][m] - массив n на m, где n - количество строк, m - количество столбцов.
    • B[m] - массив, в котором будут храниться суммы элементов по столбцам.
    • i, j, v - переменные-счетчики для перебора элементов массива.
  2. Инициализируется массив B[m] нулями.
  3. Массив X[n][m] заполняется случайными числами от -20 до 30 с шагом 5.
  4. Выводится содержимое массива X[n][m] построчно.
  5. Происходит расчет суммы элементов каждого столбца массива X[n][m] и записывается в соответствующий элемент массива B[m]. Условие для включения элемента в сумму: он положительный и делится на 5 без остатка.
  6. Выводится содержимое массива B[m] по столбцам.
  7. Код завершается, возвращая 0.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.5 из 5
Похожие ответы