Задание 7.2
Удалить из матрицы А (5х7) все столбцы, содержащие не менее 2 отрицательных
элементов, а из матрицы В (7х7) – столбцы, содержащие не менее 3 отрицательных
элементов.
Листинг программы
3
Вход: *a, n
Выход: *a
Вход: *a, orig, m, n
Выход: *a
#include <stdio.h>
#include <conio.h>
#dene x 3
#dene y 4
int delrow(int *, int, int);
void inmas (int *, int);
void outmas (int *, int, int, int);
main(void)
{
int a[x][y]={3,-1,-3,3,-4,-5,-3,7,8,11,12,-13},
b[y][y]={-4,5,6,-7,1,-10,9,-23,65,-2,15,-3,6,-21,43,89};
int i,j;
system("cls");
// inmas(&a[0][0],x*y);
// inmas(&b[0][0],y*y);
outmas(&a[0][0],x,x,y);
printf("\n");
outmas(&a[0][0],x,delrow(&a[0][0],x,2),y);
printf("\n--------\n");
outmas(&b[0][0],y,y,y);
printf("\n");
outmas(&b[0][0],y,delrow(&b[0][0],y,3),y);
getch();getch();
return 0;
}
int delrow (int *a, int m, int p)
{
int i,j,i1,j1,k=0,count=0;
for (i=0;i<m-count;)
{
k=0;
for (j=0;j<y;j++)
if (*(a+i+j*m)<0)
k++;
if (k>=p&&count<m)
{
for(j1=0;j1<y;j1++)
for(i1=i+1;i1<m;i1++)
*(a+i1+j1*m-1)=*(a+i1+j1*m);
count++;
}
else
i++;
}
return m-count;
}
void inmas (int *a, int n)
Вход: x Вход: x
Вход: *f(x), a, b, n