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;
}

Předmět Autor Datum
V nadpise máš součet, v dotazu máš součet, v kódu máš součin. Jsi si jistý, že víš, co chceš? Prvky…
Wikan 23.03.2014 11:33
Wikan
som sa pomilil sucin chcem :D a tie prvky matice C musim po jednom vynulovat alebo sa to da nejak ry…
Parker 23.03.2014 11:36
Parker
Stačí vynulovat každý jednotlivý prvek těsně před tím, než do něj začneš přičítat.
Wikan 23.03.2014 11:37
Wikan
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