Witam!
Program na mnożenie macierzy w języku C.
Wygląda on tak:
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
int main(void) {
int **tab, m ,n;
printf("MNOZENIE MACIERZY\n\n");
printf("Podaj liczbe wierszy macierzy A: ");
scanf("%d",&n);
printf("Podaj liczbe kolumn macierzy A: ");
scanf("%d",&m);
tab=(int**)malloc(m*sizeof(int*));
for(int i=0;i<m;i++)
{
(tab+i)=(int*)malloc(n*sizeof(int));
}
for(int wiersz=0;wiersz<n;wiersz++);
{
for(int kolumna=0;kolumna<m;kolumna++)
{
tab[wiersz][kolumna]=kolumna+wiersz;
printf("%d ", tab[wiersz][kolumna]);}
printf("\n");}
puts("\n\n");
int **tab2, x ,y;
printf("Podaj liczbe wierszy macierzy B: ");
scanf("%d",&x);
printf("Podaj liczbe kolumn macierzy B: ");
scanf("%d",&y);
tab2=(int**)malloc(y*sizeof(int*));
for(int r=0;r=0;r<y;r++);
{
*(tab2+r)=(int*)malloc(x*sizeof(int));
}
for(int wiersz2=0;wiersz2<x;wiersz2++) {
for(int kolumna2=0;kolumna2<y;kolumna2++){
tab2[wiersz2][kolumna2]=kolumna2+wiersz2+1;
printf("%d ", tab2[wiersz2][kolumna2]); }
printf("\n");}
puts("\n\n");
int **tab3;
tab3=(int**)malloc(y*sizeof(int*));
for(int u=0;u<y;u++)
{
*(tab3+u)=(int*)malloc(n*sizeof(int));}
if (m==x);
{
int pomoc=0;
int wynik=0;
for (int q=0;q<n;q++);
{
for(int w=0;w<y;w++);
{
for(int e=0;e<m;e++);
{
pomoc=tab[q][e]*tab2[e][w];
wynik=wynik+pomoc;
tab3[q][w]=wynik;
}
printf("%d ", tab3[q][w]);
}
printf("\n");
}
}
else{printf("\nNie da sie pomnozyc takich macierzy.");}
for(int i=0;i<n;i++);
{
free(tab3[i]);}
free(tab3);
for(int i=0;i<n;i++);
{
free(tab[i]);}
free(tab);
for(int i=0;i<x;i++);
{
free(tab2[i]);}
free(tab2);
}
system("PAUSE");
{
return 0;
}
I do tego milion błędów.
W linku zamieszczam screen'a.
http://w817.wrzuta.pl/obraz/5t3VTz6aWly/bledy_w_c
Program to CodeBlock, a kompilator GNU. W innych programach nie miałem takich problemów raczej.
Pomóżcie. (nie wiem jak włączyłem kursywe, ale nie specjalnie)
Potrzebuję konkretów, co usunąć, co dodać itd.