Найти, сколько отрицательных элементов содержит данная матрица в каждом столбце - C (СИ)

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

#include <stdio.h>
#include <locale.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
 
int main()
{
    const int a = 4, b = 4;
    int mas2[4][4], mas1[4] = {0}, i, j;
    do
    {
    setlocale(LC_ALL, "rus");
    printf("Найти, сколько отрицательных элементов содержит данная матрица в каждом столбце\n");
    srand((unsigned)time(0));
    for(i=0;i<4;i++)
    {
        mas1[i]=0;
    }
    for(i = 0; i < a; i++)
    {
        for(j = 0; j < b; j++)
            mas2[i][j] = rand() % 101 - 50;
    }
    printf( "Матрица\n");
    for(i = 0; i < a; i++)
    {
        for(j = 0; j < b; j++)
       
            printf(" %4d ", mas2[i][j]);
            printf(" \n");
            
        
    }
    for(j = 0; j < b; j++)
    {
        for(i = 0; i < a; i++)
        {
            if(mas2[i][j] < 0)
                mas1[j]++;
        }
    }
    printf("Число отриц. элементов\n");
    for(j = 0; j < b; j++)
         printf("%d ", mas1[j]);
    }
    while(getch()!=27);
}

Код к задаче: «Найти, сколько отрицательных элементов содержит данная матрица в каждом столбце - C (СИ)»

textual
int **mas2, i;
mas2 = (int**)malloc(sizeof(int*)*4);
if(0 == mas2){/*обработать нехватку памяти*/};
for(i = 0; i < 4; i += 1) {
    mas2[i] = (int*)malloc(sizeof(int)*4);
    if(0 == mas2[i]){/*обработать нехватку памяти*/};
}
//код программы
for(i = 0; i < 4; i += 1) { // про то, что удалять нужно именно так, обычно забывают
    free(mas2[i]);
}
free(mas2);

12   голосов, оценка 4.167 из 5


СОХРАНИТЬ ССЫЛКУ