[C++] mnożenie macierzy. ograniczenie liczby mnożeń

martunia887
Użytkownik
Użytkownik
Posty: 1
Rejestracja: 27 kwie 2013, o 13:35
Płeć: Kobieta
Lokalizacja: Polska

[C++] mnożenie macierzy. ograniczenie liczby mnożeń

Post autor: martunia887 »

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.

Kod: Zaznacz cały

#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
");
scanf("%d",&n);
printf("podaj m
");
scanf("%d",&m);
printf("podaj k
");
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
");
  for(i=0; i<n; i++)                    //wpisanie wartosci do macierzy nxm
  for(j=0; j<m; j++)
    {
    printf("Podaj [%d][%d] element
",i,j);
     scanf("%d",&A[i][j]);
    }

  printf("Podaj macierz mxk
");

  for(j=0; j<m; j++)             //wpisanie wartosci do macierzy mxk
  for(l=0; l<k; l++)
    {
    printf("Podaj [%d][%d] element
",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
");
  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("
");
    }

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

free(C);

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

Ostatnio zmieniony 27 kwie 2013, o 14:08 przez Dasio11, łącznie zmieniany 1 raz.
Powód: Tematy w tym dziale oznaczaj tagami [Nazwa tematu].
PabloRal
Użytkownik
Użytkownik
Posty: 34
Rejestracja: 30 wrz 2012, o 13:52
Płeć: Mężczyzna
Lokalizacja: Legnica
Podziękował: 1 raz
Pomógł: 4 razy

[C++] mnożenie macierzy. ograniczenie liczby mnożeń

Post autor: PabloRal »

Zrób sobie jakiś licznik i przy wczytywaniu sprawdzaj, czy podana wartość jest zerem, jeśli tak, to zwiększaj licznik o jeden ;D
ODPOWIEDZ