Hvala na odgovorima, inace radio sam sledece:
Code:
#include <stdio.h>
#include <stdlib.h>
main() {
int k,p,i,j,m,n,*a,*b,*c;
printf("Mnozenje matrica se vrsi ako je broj kolona jedne matrice\njednak broju vrste druge matrice\n");
printf("Unesite dimenzije prve matrice:\n");
scanf("%d%d",&m,&n);
printf("Unesite dimenzije druge matrice:\n");
scanf("%d%d",&k,&p);
while (m>0 && n>0 && n==k){
a=(int*)malloc(m*n*sizeof(int));
if (a==NULL) break;
b=(int*)malloc(n*p*sizeof(int));
if (b==NULL) break;
printf("Unesite elemente prve matrice:\n");
for (i=0;i<m;i++)
for (j=0;j<n;j++) scanf("%d",&a[i*n+j]);
printf("Uneta matrica je:\n");
for (i=0;i<m;i++){
for (j=0;j<n;j++) printf("%d ",a[i*n+j]);
putchar('\n'); }
printf("Unesite elemente druge matrice:\n");
for (i=0;i<n;i++)
for (j=0;j<p;j++) scanf("%d",&b[i*p+j]);
printf("Uneta matrica je:\n");
for (i=0;i<n;i++){
for (j=0;j<p;j++) printf("%d ",b[i*p+j]);
putchar('\n'); }
c=(int*)malloc(m*p*sizeof(int));
if (c==NULL) break;
for (i=0;i<m;i++)
for (j=0;j<n;j++)
for (k=0;k<p;k++) c[k*p+i]=a[n*j+i]*b[p*k+j];
printf("Proizvod matrica je:\n");
for (i=0;i<m;i++){
for (j=0;j<p;j++) printf("%d ",c[i*p+j]);
putchar('\n'); }
printf("\n\n");
free(a); free(b); free(c);
printf("Mnozenje matrica se vrsi ako je broj kolona jedne matrice\njednak broju vrste druge matrice\n");
printf("Unesite dimenzije prve matrice:\n");
scanf("%d%d",&m,&n);
printf("Unesite dimenzije druge matrice:\n");
scanf("%d%d",&k,&p);
}
}
Ovaj algoritam za mnozenje matrica nije tacan ( u smislu dobijanja pogresnog rezultata, jer sam bio izmesao vrste i kolone matrica ali sam to ispravio, ispravljeni kod mi nije pri ruci sada).
Internet ne cini ljude glupima. Internet cini ljudsku glupost dostupnijom (TM by me)
Webhost Hosting Services