Определить количество положительных элементов каждого столбца матрицы и занести их в массив - C (СИ)

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

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

Помогите пожалуйста написать программу в си на тему двумерный массив: Определить количество положительных элементов xk каждого столбца матрицы X и переписать их в одномерный массив (вектор) M.

Решение задачи: «Определить количество положительных элементов каждого столбца матрицы и занести их в массив»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. int main()
  5. {  
  6.     int str, colm, *M;
  7.     srand(time(NULL));
  8.     printf("Enter string, column:\n");
  9.     scanf("%d%d", &str, &colm);
  10.     int **matr = (int**)calloc(str + 1, sizeof(int*));
  11.     for (int i = 0; i < str + 1; ++i)
  12.         matr[i] = (int*)calloc(colm, sizeof(int));
  13.     M = matr[str];
  14.     for (int i = 0; i < str; ++i)
  15.         for (int j = 0; j < colm; ++j) {
  16.             matr[i][j] = -20 + rand() % 50;
  17.             if (matr[i][j] > 0)
  18.                 ++M[j];
  19.         }
  20.     for (int i = 0; i < str; ++i) {
  21.         for (int j = 0; j < colm; ++j)
  22.             printf("[%3d]", matr[i][j]);
  23.         printf("\n");
  24.     }
  25.     for (int i = 0; i < colm; ++i)
  26.         printf("%d colum %d positive elemnt\n", i + 1, M[i]);
  27.     return 0;
  28. }

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

В этом коде:

  1. Объявлены переменные:
    • str - строка, количество строк в матрице;
    • colm - количество столбцов в матрице;
    • M - указатель на массив, в который будут занесены количества положительных элементов каждого столбца;
    • matr - двумерный массив (матрица), в котором будут случайные значения;
    • rand() % 50 - генератор случайного числа в диапазоне от 0 до 49, так как при вычислении выражения % остаток от деления на 50 будет от 0 до 49;
    • srand(time(NULL)) - инициализация генератора случайных чисел;
    • printf() - функция вывода информации на экран;
    • scanf() - функция ввода информации с клавиатуры;
    • calloc() - функция выделения памяти.
  2. Пользователю предлагается ввести количество строк и столбцов матрицы.
  3. Выделяется память под матрицу и массив M.
  4. Заполняется матрица случайными значениями. Если элемент положительный, то к его соответствующему индексу в массиве M прибавляется единица.
  5. Выводится на экран заполненная матрица.
  6. Выводится количество положительных элементов каждого столбца, сгенерированных в массиве M.
  7. Программа завершается.

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


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

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

15   голосов , оценка 4.133 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы