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

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

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

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

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

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{   
    int str, colm, *M;
    srand(time(NULL));
    printf("Enter string, column:\n");
    scanf("%d%d", &str, &colm);
    int **matr = (int**)calloc(str + 1, sizeof(int*));
    for (int i = 0; i < str + 1; ++i)
        matr[i] = (int*)calloc(colm, sizeof(int));
    M = matr[str];
    for (int i = 0; i < str; ++i)
        for (int j = 0; j < colm; ++j) {
            matr[i][j] = -20 + rand() % 50;
            if (matr[i][j] > 0)
                ++M[j];
        }
    for (int i = 0; i < str; ++i) {
        for (int j = 0; j < colm; ++j)
            printf("[%3d]", matr[i][j]);
        printf("\n");
    }
    for (int i = 0; i < colm; ++i)
        printf("%d colum %d positive elemnt\n", i + 1, M[i]);
    return 0;
}

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

В этом коде:

  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
Похожие ответы