Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem C++ a 2D pole a známky žáků

Zdravím mám takový malý problém. Za úkol jsem dostal abych vytvořil 2d pole do kterého se vypíšou známky žáků a spočítá se z toho průměr a pak se spočítá celkový průměr známek všech žáků. Můj problém je že mě to vypíše vždycky nějaký blbosti místo toho aby známky udělali průměr a zbytek mě vypíše nějaký nesmyslný čísla.Chyby mi to žádný nepíše. Můžete mi někdo pomoct? děkuji

Zde je program:

#include "stdafx.h"
#include "locale"
#include "stdio.h"

void main()
{
setlocale(LC_ALL, "czech");
printf("Dvourozměrné pole \n");
printf("\n");
printf("Vypracoval: ----\n");
printf("\n");
printf("Datum: 15.5. 2013\n");
printf("*****************************\n");

int C;
int M;
int CJ;
int F;
int VYT;
int I;
int J;
int N;
double PR;
double Celprum;
int S;
int CS;
int Z [4][5];

printf("Zadej počet žáků:\n");
scanf("%d",&C);

for(I=1;I<=C;I++){

printf("Zadej známku z ČJ: \n");
scanf("%d",&CJ);
printf("Zadej známku z M: \n");
scanf("%d",&M);
printf("Zadej známku z F: \n");
scanf("%d",&F);
printf("Zadej známku z Vyt: \n");
scanf("%d",&VYT);

Z[C-1][0]=M;
Z[C-1][1]=CJ;
Z[C-1][2]=F;
Z[C-1][3]=VYT;

}
S=0;
CS=0;

printf("Pořadové číslo Mat ČJ Fyz VYT Průměr\n");

for(I=0;I<C;I++){
S=0;
for(J=0;J<=3;J++){
CS=CS+Z[I][J];
S=S+Z[I][J];

}
PR=S/4;

printf("%d, %d, %d, %d, %d, %lf\n",I+1, Z[I][0], Z[I][1], Z[I][2], Z[I][3], PR);

}
Celprum=CS/C;
printf("Celkový průměr: %.2lf\n",Celprum);

getchar();getchar();

}

Předmět Autor Datum
NIKDO NIC?? :(
Jeapsikkk 15.05.2013 19:29
Jeapsikkk
Debugger si uz pouzil? Ak ne tak preco ne? P.S: nazvy premennych pouzivas jak keby si za kazde udre…
MM.. 15.05.2013 19:31
MM..
som sice len C++ lajk, ale nemalo by byt to pole trosku dynamicke? Co ak bude ziakov viac ako 4?
wam_Spider007 15.05.2013 19:34
wam_Spider007
Z[C-1][0]=M; Z[C-1][1]=CJ; Z[C-1][2]=F; Z[C-1][3]=VYT; je blbo. V cykle sa ti predsa meni I a ne C…
MM.. 15.05.2013 19:37
MM..
my jsme to takhle měli zadané ze školy: Zadání: Zpracujte VD a program pro výpočet studijních průměr…
Jeapsikkk 15.05.2013 19:41
Jeapsikkk
ono to v podstatě funguje jen mě to nespočítá ty průměry a debuger používám
Jeapsikkk 15.05.2013 19:43
Jeapsikkk
Cital si co som pisal vyssie alebo co teraz este nefunguje? Ked pouzivas debugger tak si skontroluj…
MM.. 15.05.2013 20:09
MM..
A u printf ked mas parameter double tak sa pouziva %f a ne %lf.
MM.. 15.05.2013 20:10
MM..
nás ve škole učili %lf u double
Jeapsikkk 15.05.2013 20:38
Jeapsikkk
tak vas ucili blbo. Najdi si akekolvek printf reference, na google je toho milion. Napr. Printf_form…
MM.. 15.05.2013 20:43
MM..
A celkovy prumer je Celprum=CS/(C*4); ne?
MM.. 15.05.2013 20:14
MM..
A dalsia vec ked ratas tie priemery tak mas 2 integery a medzi nimi /, ak su oba parametre integery…
MM.. 15.05.2013 20:16
MM..
tak to jsem zvědavej jak to dopadne
SKINPAS 22.06.2013 21:41
SKINPAS
Když už musíš psát ty svoje hovadiny, necpi to aspoň do starých dotazů.
karel 22.06.2013 21:43
karel
i starý dotas má právo být vyřešen. ne?
SKINPAS 22.06.2013 22:30
SKINPAS
on uz ale vyrieseny bol, alebo myslis ze robi domacu ulohu 2mesiace?
MM.. 22.06.2013 22:35
MM..
Ty nic neřešíš, jen píšeš hovadiny.
karel 22.06.2013 22:35
karel
no 2 měsíce to je jedno alespon ty zájemci kteří chtějí také si udělat něco takového tak to alespon… poslední
SKINPAS 22.06.2013 22:47
SKINPAS
Z[C-1][0]=M;
Z[C-1][1]=CJ;
Z[C-1][2]=F;
Z[C-1][3]=VYT;

je blbo. V cykle sa ti predsa meni I a ne C-1

Inac rozmyslajuci clovek napise cyklus ako
for(I=0;I<C;I++)
a potom moze pouzit rovno I na indexovanie pola

Z[I][0]=M;
Z[I][1]=CJ;
Z[I][2]=F;
Z[I][3]=VYT;

my jsme to takhle měli zadané ze školy:
Zadání: Zpracujte VD a program pro výpočet studijních průměrů ve třídě. Užijte dvourozměrné pole.

Vstupní hodnoty:
• C – pořadové číslo žáka
• M, CJ, F, VYT – známky z předmětů: Double

Pracovní proměnné:
• I,J – parametry cyklu (počítadlo)
• N – počet žáků
• PR – studijní průměr žáka
• Celprum – celkový průměr ve třídě
• S –součet známek jednoho žáka
• CS – celková suma známek všech žáků ve třídě
Výstupní hodnoty:
• Z = 2 rozměrné tabulka se známkami žáků a jejich průměry

A dalsia vec ked ratas tie priemery tak mas 2 integery a medzi nimi /, ak su oba parametre integery tak sa robi celociselne delenie.
Ked chces delenie realnych cisel tak musis jeden parameter pretypovat na double, alebo ak je konstanta tak pridat za nu .0 cim urobis z toho double konstantu.

takze napr.:
PR=S/4.0;

Celprum=(double)(CS)/(C*4);

apod.

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