Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem C - Sucet matic

Ahoj chcel som si spravit velmi jednoduchy programik na scitanie matic ale neviem sa vysomarit z toho scitania :D Ide mi hlava vybuchnut to je strasne :D Nevie niekto nahodou nejaky dobry sposob scitania matic? :D alebo popripade upravit ten moj? Je urcite zly :D

#include <stdio.h>
#include <stdlib.h>
#include "Matice.h"

int main()
{
int PocetRiadkovA=0;
int PocetStlpcovA=0;
int PocetRiadkovB=0;
int PocetStlpcovB=0;
int i=0;
int j=0;
int k=0;

printf("Program na sucet 2 matic\n");
printf("Zadaj pocet riadkov matice A: ");
scanf("%d",&PocetRiadkovA);
printf("Zadaj pocet stlpcov matice A: ");
scanf("%d",&PocetStlpcovA);
printf("Zadaj pocet riadkov matice B: ");
scanf("%d",&PocetRiadkovB);
printf("Zadaj pocet stlpcov matice B: ");
scanf("%d",&PocetStlpcovB);

if(PocetStlpcovA!=PocetRiadkovB)
{
printf("MaticaA nema tolko stlpcov kolko MaticaB riadkov");
return 0;
}

int MaticaA[PocetRiadkovA][PocetStlpcovA];
int MaticaB[PocetRiadkovB][PocetStlpcovB];
int MaticaC[PocetRiadkovA][PocetStlpcovB];

for(j=0;j<PocetRiadkovA;++j) //nacitanie MaticeA
{
for(i=0;i<PocetStlpcovA;++i)
{
printf("MaticaA - Zadaj %d. stlpec riadku %d: ",i+1,j+1);
scanf("%d",&MaticaA[j][i]);
}
}
printf("\n");
for(j=0;j<PocetRiadkovA;++j) //vypis MaticeA
{
for(i=0;i<PocetStlpcovA;++i)
{
printf("%d",MaticaA[j][i]);
}
printf("\n");
}

for(j=0;j<PocetRiadkovB;++j) //nacitanie MaticeB
{
for(i=0;i<PocetStlpcovB;++i)
{
printf("MaticaB - Zadaj %d. stlpec riadku %d: ",i+1,j+1);
scanf("%d",&MaticaB[j][i]);
}
}
printf("\n");
for(j=0;j<PocetRiadkovB;++j) //vypis MaticeB
{
for(i=0;i<PocetStlpcovB;++i)
{
printf("%d",MaticaB[j][i]);
}
printf("\n");
}

for(k=0;k<PocetStlpcovB;++k) //Nasobenie MaticeA a MaticeB - TU JE CHYBA!!!
{
for(j=0;j<PocetRiadkovA;++j)
{
for(i=0;i<PocetStlpcovA;++i)
{
MaticaC[j][k]=(MaticaA[j][i]*MaticaB[i][k])+Matica C[j][k];
}
}
}

printf("\n");
for(j=0;j<PocetRiadkovA;++j) //vypis matice C teda vysledku
{
for(i=0;i<PocetStlpcovB;++i)
{
printf("%d",MaticaC[j][i]);
}
printf("\n");
}
return 0;
}

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Udělej si zatím jen for cykly vypisující indexy, ať víš, jestli to indexuje správně. Pak to teprve p…
Niko Bellic 23.03.2014 11:38
Niko Bellic
Mam to takto vypise mi to pekne nulovu maticu C vsetko ide pocet riadkov stlpcov je super iba teraz…
Parker 23.03.2014 11:50
Parker
#include <stdio.h> #include <stdlib.h> #include "Matice.h" int main() { int PocetRiadkovA=0; int Po…
Parker 23.03.2014 11:50
Parker
A co to teda po tom součinu vypisuje?
Wikan 23.03.2014 12:00
Wikan
no sucin neviem spravit :D to vypisuje iba tu prazdnu maticu C ktora obsahuje same nuly
Parker 23.03.2014 12:02
Parker
Co vypisuje ten tvůj původní program?
Wikan 23.03.2014 12:06
Wikan
ked som mal MaticuA 123 a MaticuB 12 vysledok znel 20012833502001103052 456 34 8164 56
Parker 23.03.2014 12:20
Parker
no super zle mi to odriadkovalo -_-
Parker 23.03.2014 12:21
Parker
A už jsi do toho původního programu přidal to vynulování?
Wikan 23.03.2014 12:23
Wikan
To neni mozne to funguje! :D no ale akoze to som teda necakal ked som to vymyslal :D wow :D diky za…
Parker 23.03.2014 12:41
Parker
No a pro příště se těmi radami řiď hned na začátku. Tu nulování jsi tam měl přidat už před hodinou. poslední
Wikan 23.03.2014 12:43
Wikan

#include <stdio.h>
#include <stdlib.h>
#include "Matice.h"

int main()
{
int PocetRiadkovA=0;
int PocetStlpcovA=0;
int PocetRiadkovB=0;
int PocetStlpcovB=0;
int i=0;
int j=0;
int k=0;

printf("Program na sucet 2 matic\n");
printf("Zadaj pocet riadkov matice A: ");
scanf("%d",&PocetRiadkovA);
printf("Zadaj pocet stlpcov matice A: ");
scanf("%d",&PocetStlpcovA);
printf("Zadaj pocet riadkov matice B: ");
scanf("%d",&PocetRiadkovB);
printf("Zadaj pocet stlpcov matice B: ");
scanf("%d",&PocetStlpcovB);

if(PocetStlpcovA!=PocetRiadkovB)
{
printf("MaticaA nema tolko stlpcov kolko MaticaB riadkov");
return 0;
}

int MaticaA[PocetRiadkovA][PocetStlpcovA];
int MaticaB[PocetRiadkovB][PocetStlpcovB];
int MaticaC[PocetRiadkovA][PocetStlpcovB];

for(j=0;j<PocetRiadkovA;++j) //nacitanie MaticeA
{
for(i=0;i<PocetStlpcovA;++i)
{
printf("MaticaA - Zadaj %d. stlpec riadku %d: ",i+1,j+1);
scanf("%d",&MaticaA[j][i]);
}
}
printf("\n");
for(j=0;j<PocetRiadkovA;++j) //vypis MaticeA
{
for(i=0;i<PocetStlpcovA;++i)
{
printf("%d",MaticaA[j][i]);
}
printf("\n");
}
printf("\n");
for(j=0;j<PocetRiadkovB;++j) //nacitanie MaticeB
{
for(i=0;i<PocetStlpcovB;++i)
{
printf("MaticaB - Zadaj %d. stlpec riadku %d: ",i+1,j+1);
scanf("%d",&MaticaB[j][i]);
}
}
printf("\n");
for(j=0;j<PocetRiadkovB;++j) //vypis MaticeB
{
for(i=0;i<PocetStlpcovB;++i)
{
printf("%d",MaticaB[j][i]);
}
printf("\n");
}

for(j=0;j<PocetRiadkovA;++j) //Nasobenie MaticeA a MaticeB
{
for(i=0;i<PocetStlpcovB;++i)
{
MaticaC[j][i]=0;
}
}

printf("\n");
for(j=0;j<PocetRiadkovA;++j) //vypis matice C teda vysledku
{
for(i=0;i<PocetStlpcovB;++i)
{
printf("%d",MaticaC[j][i]);
}
printf("\n");
}
return 0;
}

Zpět do poradny Odpovědět na původní otázku Nahoru