Ahojky, prosím vás, potřebovala bych poradit s programem. Snažím se vytvořit dynamické násobení matic, respektive násobení matic přes ukazatele. Něco jsem vytvořila... matice se vypisují do jednorozměrného pole, bohužel je někde chyba, protože se mi nechce vypsat výsledná matice. Prosím, potřebovala bych poradit :(
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
int radek_a, sloupec_a_radek_b, sloupec_b;
printf ("Zadejte pocet radku matice A: ");
scanf ("%d", &radek_a);
printf ("Zadejte pocet sloupcu matice A, radku matice B: ");
scanf ("%d", &sloupec_a_radek_b);
printf ("Zadejte pocet sloupcu matice B: ");
scanf ("%d", &sloupec_b);
int i, j;
int n;
n = radek_a * sloupec_a_radek_b;
int *pole1 = malloc (n * sizeof(*pole1));
int *a = NULL;
a = pole1;
printf ("Matice A je: \n");
for(i = 0; i < n; i++)
{
*a = rand() % 10;
a++;
printf ("%d ", *(pole1+i));
}
int m;
m = sloupec_a_radek_b*sloupec_b ;
int *pole2 = malloc (n * sizeof(*pole2));
int *b = NULL;
b = pole2;
printf ("\nMatice B je: \n");
for(j = 0; j < m; j++)
{
*b = rand() % 10;
b++;
printf ("%d ", *(pole2+j));
}
int o,k;
o = radek_a*sloupec_b ;
int *pole3 = malloc (o * sizeof(*pole3));
int *c = NULL;
c = pole3;
printf ("\nMatice C je: \n");
for (k = 0; k < o; k++)
{
*c += (*a++) * (*b+sloupec_b);
c++;
printf ("%d ", *(pole3+k));
}
free(pole1);
free(pole2);
free(pole3);
return 0;
}