mnożenie macierzy. ograniczenie liczby mnożeń

0

Witam!

Mam taki problem. Mam program mnożący dwie macierze. Muszę do niego dopisać kilka warunków. Jeśli ktoś pomógłby mi napisać jeden z nich, to już bym sobie z resztą poradziła :)
Chodzi o to, że jeśli cała kolumna w macierzy B jest zerami, to ta sama kolumna w macierzy C również będzie zerami.

 
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>


main()
{
int n,m,k,l;
int**A,**B,**C;
int i;
int j;
printf("Podaj n\n");
scanf("%d",&n);
printf("podaj m\n");
scanf("%d",&m);
printf("podaj k\n");
scanf("%d",&k);
A=(int**)malloc(n*sizeof(int*));        //przydzielenie pamieci macierzy nxm
        for(i=0;i<n;i++)
        A[i]=(int*)malloc(m*sizeof(int));

B=(int**)malloc(m*sizeof(int*));          //przydzielenie pamieci macierzy mxk
        for(j=0;j<m;j++)
        B[j]=(int*)malloc(k*sizeof(int));

C=(int**)malloc(n*sizeof(int*));        //przydzielenie pamieci macierzy nxk
        for(i=0;i<n;i++)
        C[i]=(int*)malloc(k*sizeof(int));

  printf("Podaje macierz nxm\n");
  for(i=0; i<n; i++)                    //wpisanie wartosci do macierzy nxm
  for(j=0; j<m; j++)
    {
    printf("Podaj [%d][%d] element\n",i,j);
     scanf("%d",&A[i][j]);
    }

  printf("Podaj macierz mxk\n");

  for(j=0; j<m; j++)             //wpisanie wartosci do macierzy mxk
  for(l=0; l<k; l++)
    {
    printf("Podaj [%d][%d] element\n",j,l);
     scanf("%d",&B[j][l]);
    }

for(i=0;i<n;i++)       //kopiowanie
  {
    for(l=0;l<m;l++)
    {
       C[i][l]=0;
      for(j=0;j<k;j++)
      {
    C[i][l]=C[i][l]+A[i][j]*B[j][l];
      }
  }
 }
  printf("Iloczyn macierzy nxm * mxk\n");
  for(i=0; i<n; i++)                     //wyswietlenie macierzy nxk
    {
    for(l=0; l<k; l++)
       printf("%d ",C[i][l]);  //w kazdym wierszu spacja
    printf("\n");
    }

for(i=0;i<n;i++)
free(C[i]);

free(C);

getch();
A=NULL;
B=NULL;
return 0;
}

0

Dodaj do macierzy dodatkowy wiersz i dodatkową kolumnę, w których podczas wprowadzenia zwiększasz ilość niezerowych elementów.
Więc przy mnożeniu możesz sprawdzić jednym warunkiem czy cały wiersz/kolumna - zerowy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1