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… nový
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… nový
Parker 23.03.2014 11:50
Parker
#include <stdio.h> #include <stdlib.h> #include "Matice.h" int main() { int PocetRiadkovA=0; int Po… nový
Parker 23.03.2014 11:50
Parker
A co to teda po tom součinu vypisuje? nový
Wikan 23.03.2014 12:00
Wikan
no sucin neviem spravit :D to vypisuje iba tu prazdnu maticu C ktora obsahuje same nuly nový
Parker 23.03.2014 12:02
Parker
Co vypisuje ten tvůj původní program? nový
Wikan 23.03.2014 12:06
Wikan
ked som mal MaticuA 123 a MaticuB 12 vysledok znel 20012833502001103052 456 34 8164 56 nový
Parker 23.03.2014 12:20
Parker
no super zle mi to odriadkovalo -_- nový
Parker 23.03.2014 12:21
Parker
A už jsi do toho původního programu přidal to vynulování? nový
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… nový
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