@Vovasab

Как посчитать количество отрицательных элементов в матрице?

Я хочу вывести количество отрицательных чисел каждого столбика в отдельный массив, но не понимаю в чем ошибка
int row, column;
    printf("Enter number of rows: ");
    scanf("%d", &row);
    printf("Enter number of column: ");
    int **matrix = (int**)malloc(row * sizeof(int));
    scanf("%d", &column);
    int *arr = (int*)(malloc(sizeof(int) * column));
    printf("Enter value of k: ");
    scanf("%d", &k);
    for (int i = 0; i < row; ++i)
    {
        matrix[i] = (int*)malloc(column * sizeof(int));
    }
    for (int i = 0; i < row; ++i)
    {
        for (int j = 0; j < column; ++j)
        {
            printf("Element matrix[%d][%d] = ", i+1, j+1);
            scanf("%d", &matrix[i][j]);

        }
    }
    printf("Your matrix: \n");
    for (int i = 0; i < row; ++i)
    {
        for (int j = 0; j < column; ++j)
        {
            printf("[%d]\t", matrix[i][j]);
        }
        printf("\n\n");
    }

    for (int i = 0; i < column; ++i)
    {
        for (int j = 0; i < row; ++j)
        {
            if(matrix[i][j] < 0)
                arr[j]++;
        }
    }

    for (int i = 0; i < column; ++i)
    {
        printf("%d ", arr[i]);
    }
    printf("\n");

    return 0;
  • Вопрос задан
  • 1239 просмотров
Решения вопроса 2
Zoominger
@Zoominger
System Integrator
for (int i = 0; i < column; ++i)
    {
        for (int j = 0; i < row; ++j)
        {
            if(matrix[i][j] < 0)
                arr[j]++;
        }
    }

Разве не:
arr[i]++;
?
Ответ написан
myjcom
@myjcom
Добавлю
тут 2(3)
for (int i = 0; i < column; ++i)
    {
        for (int j = 0; i < row; ++j)
        {
            if(matrix[i][j] < 0)
                arr[j]++;
        }
    }


И arr надо calloc
И что если размеры row col будут разные. У вас цикл наоборот а индексы прежние.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы