int fun(int **tab,int **tab1,int n,int m,int k,int l){
if(m!=k) {
printf("Blad!!");
return -1;
}
tab=(int**)malloc(n*sizeof(int*));
int i,j,s,o;
for( i=0;i<n;i++){
tab[i]=(int*)malloc(m*sizeof(int));
}
tab1=(int**)malloc(k*sizeof(int*));
for( i=0;i<k;i++){
tab[i]=(int*)malloc(l*sizeof(int));
}
int **tab2;
tab2=(int**)malloc(n*sizeof(int*));
for( i=0;i<n;i++){
tab[i]=(int*)malloc(l*sizeof(int));
}
printf("siema");
//mnozenie
for(i=0;i<n;i++)
for(j=0;j<l;j++)
{
s=0;
printf("siema");
for(o=0;o<m;o++) s+=tab[i][o]*tab1[o][j];
tab2[i][j]=s;
}
printf("elo");
int b,c;
printf("Tablica %dx%d\n\n", n,l);
for(b=0; b<n; b++){
printf("\n");
for(c=0; c<l; c++) printf("%d ", tab2[b][c]);
}
}
int main(){
int tab[2][2]={{1,1},{2,2}};
int tab1[2][2]={{1,1},{2,2}};
fun(tab,tab1,2,2,2,2);
return 0;
}
Program powinien liczyć iloczyn dwóch macierzy o wymiarach nxm i kxl i zwracać nową macierz. Jednak coś nie działa jak należy, nie mam pojęcia co :(
coś nie działa
?