Найти, сколько отрицательных элементов содержит данная матрица в каждом столбце - 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);
}Решение задачи: «Найти, сколько отрицательных элементов содержит данная матрица в каждом столбце»
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);