Сформировать одномерный массив из индексов положительных элементов, прочитанных по строкам всей матрицы - C (СИ)
Формулировка задачи:
Дана матрица А размером m*n. Сформировать одномерный массив из индексов «+»-ых элементов, прочитанных по строкам всей матрицы.
Не могу добиться того, что она работала по задаче) помогите каким-нибудь советом...
#include <vcl.h>
#include <conio.h>
#include <stdio.h>
void in_matr(int a[][10], int m, int n);
void out_matr(int a[][10], int m, int n);
void processing(int a[][10], int m, int n);
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
main()
{ int m,n,a[10][10];
printf("Vvedite razmer:");
scanf("%d%d", &m, &n);
in_matr(a,m,n);
out_matr(a,m,n);
processing(a,m,n);
getch();
}
void in_matr(int a[][10], int m, int n)
{ int i,j;
printf("\n Vvedite elementy matr \n");
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%d", &a[i][j]);
}
void out_matr(int a[][10], int m, int n)
{ int i,j;
for(i=0;i<m;i++)
{for(j=0;j<n;j++)
printf("%d\t",a[i][j]);
printf("\n");
}
}
void processing(int a[][10], int m, int n)
{ int b[100],k=0;
printf("\n Massiv \n");
for(int i=0;i<m;i++,k++)
{for(int j=0;j<n;j++)
if(a[i][j]>0) b[k]=i ;
}
for(int i=0;i<k;i++)
{ printf(" %d ",b[k]); }
}Решение задачи: «Сформировать одномерный массив из индексов положительных элементов, прочитанных по строкам всей матрицы»
textual
Листинг программы
void processing(int a[][10], int m, int n)
{ int b[100],k=0;
printf("\n Massiv \n");
for(int i=0;i<m;i++,k++)
{for(int j=0;j<n;j++)
if(a[i][j]>0) b[k]=i ;
}
for(int i=0;i<k;i++)
{ printf(" %d ",b[k]); }
}
Объяснение кода листинга программы
Код выполняет следующие действия:
- Создает пустой массив b динамически, используя выделение памяти через кучу.
- Инициализирует переменную k нулем.
- Выводит заголовок
Массив. - Проходит по всем строкам матрицы a.
- Для каждой строки проверяет каждый элемент на положительность.
- Если элемент положительный, то его индекс записывается в массив b с увеличением индекса k на единицу.
- После прохождения всех строк выводит на экран все индексы положительных элементов матрицы a, которые были записаны в массив b.