#include <stdio.h>
void wczytaj(int tab1[10][10], int* sz1,int* wy1)
{
printf("Podaj wysokosc tablicy :");
scanf("%d",wy1);
printf("Podaj szerokosc tablicy :");
scanf("%d",sz1);
for(int i=0; i<*wy1; i++)
{
for(int j=0; j<*sz1; j++)
scanf("%d",&tab1[i][j]);
}
}
void pokaz(int tab1[10][10], int sz1,int wy1)
{
for(int i=0; i<wy1; i++)
{
for(int j=0; j<sz1; j++)
printf("%d ",tab1[i][j]);
printf("\n");
}
}
void pomnoz(int tab1[10][10],int tab2[10][10],int tab3[10][10], int sz1,int wy1)
{
for (int w = 0; w < sz1; w++) {
for ( int k = 0; k < wy1; k++) {
for ( int s = 0; s < sz1; s++) {
tab3[w][k]+= tab1[w][s]*tab2[s][k];
}
}
int main()
{
int tab1[10][10], sz, wy;
int tab2[10][10], sz2, wy2;
int tab3[10][10], sz3, wy3;
printf("Pierwsza tablica\n");
wczytaj(tab1,&sz1,&wy1);
printf("Druga tablica\n");
wczytaj1(tab2,&sz2,&wy2);
if (sz1!=wy2)
{
return 0;
}
pomnoz(tab1,tab2,tab3,sz1,wy1);
printf("wynik:\n");
pokaz(tab1,sz1,wy1);
pokaz(tab2,sz2,wy2);
pokaz(tab3,sz3,wy3);
return 0;
}
0
0
jakiś opis? działa ale złe wyniki? nie kompiluje się?
0
/*#include <stdio.h>
int main()
{
int m, n, p, q, c, d, k, sum = 0;
int first[10][10], second[10][10], multiply[10][10];
printf("Enter the number of rows and columns of first matrix\n");
scanf("%d%d", &m, &n);
printf("podaj elementy pierwszej macierzy\n");
for (c = 0; c < m; c++)
for (d = 0; d < n; d++)
scanf("%d", &first[c][d]);
printf("Enter the number of rows and columns of second matrix\n");
scanf("%d%d", &p, &q);
if (n != p)
printf("macierz nie moze zostac pomnozona.\n");
else
{
printf("wpisz elementy drugiej macierzy\n");
for (c = 0; c < p; c++)
for (d = 0; d < q; d++)
scanf("%d", &second[c][d]);
for (c = 0; c < m; c++) {
for (d = 0; d < q; d++) {
for (k = 0; k < p; k++) {
sum += first[c][k]*second[k][d];
}
multiply[c][d] = sum;
sum = 0;
}
}
printf("Product of entered matrices:-\n");
for (c = 0; c < m; c++) {
for (d = 0; d < q; d++)
printf("%d\t", multiply[c][d]);
printf("\n");
}
}
return 0;
}*/
#include <stdio.h>
void wczytaj(int tab1[10][10], int* sz1,int* wy1)
{
printf("Podaj wysokosc tablicy :");
scanf("%d",wy1);
printf("Podaj szerokosc tablicy :");
scanf("%d",sz1);
for(int i=0; i<*wy1; i++)
{
for(int j=0; j<*sz1; j++)
scanf("%d",&tab1[i][j]);
}
}
void pokaz(int tab1[10][10], int sz1,int wy1)
{
for(int i=0; i<wy1; i++)
{
for(int j=0; j<sz1; j++)
printf("%d ",tab1[i][j]);
printf("\n");
}
}
void pomnoz(int tab1[10][10],int tab2[10][10],int tab3[10][10], int sz1,int wy1)
{
for (int w = 0; w < sz1; w++) {
for ( int k = 0; k < wy1; k++) {
for ( int s = 0; s < sz1; s++) {
tab3[w][k]+= tab1[w][s]*tab2[s][k];
}
}
}
}
int main()
{
int tab1[10][10], sz1, wy1;
int tab2[10][10], sz2, wy2;
int tab3[10][10], sz3, wy3;
printf("Pierwsza tablica\n");
wczytaj(tab1,&sz1,&wy1);
printf("Druga tablica\n");
wczytaj(tab2,&sz2,&wy2);
if (sz1!=wy2)
{
return 0;
}
pomnoz(tab1,tab2,tab3,sz1,wy1);
printf("wynik:\n");
pokaz(tab1,sz1,wy1);
pokaz(tab2,sz2,wy2);
pokaz(tab3,sz3,wy3);
return 0;
}
działa ale zle wyniki
i jeszcze nie wiem gdzie dac warunek ze
if (sz1!=wy2)
{
return 0;
}