Stránka 1 z 1

Výpočet průměru v Cčku

Napsal: 20 říj 2012, 16:02
od Velous
Zdravím, potřebuju poradit.
Mám 2 verze jednoho programu, ale ani jedna nefunguje tak, jak má. Je to program pro výpočet aritmetického průměru hodnot zadaných v souboru. Protřebuju, aby mi program přečetl hodnoty ze souboru, vypočítal průměr a vytiskl do druhého souboru jméno, příjmení, hodnotu a nakonec už vypočítaný průměr. Jeden program mi hodnoty přečte, vypočítá průměr, vytiskne ho na obrazovku, ale nezapíše do souboru, nevím proč. Ten druhý ani nevypočítá průměr. Prosím mrkněte se mi na to někdo a řekněte mi, popřídadě opravte, co tam je špatně. Díky moc.


}

Napsal: 20 říj 2012, 16:15
od Andrea
Nějak divně používáš fprintf(), buď ti tam chybí formátovací řetězec, nebo ti tam chybí proměnná.

fprintf(fw, jmeno, prijmeni, radky)
fprintf(fw, "Prumerny pocet bodu je: %f\n")

Napsal: 20 říj 2012, 16:24
od Velous
Je to možné. Chodím na vysokou a tam nám k tomu skoro nic neřekli, takže mi zbývá samostudium. :-( Takže se není čemu divit, pokud něco používám špatně, nebo mi někde něco chybí.

Ten první program už mi jakš takš jede, jen mám problém s tím nekonečným cyklem. Potřebuju, aby mi vypsal do souboru jméno, příjmení, hodnotu ( jsou tam 4 řádky) a nakonec mi napsal Průměrný počet bodů je:... Do souboru mi napíše jen tu větu a vypočtenou hodnotu.

Napsal: 20 říj 2012, 17:42
od Andrea
A k čemu je tam ten nekonečný cyklus a testování EOF při zápisu do souboru?

Napsal: 20 říj 2012, 17:59
od Velous
Už jsem to udělal jinak, ale nevím, proč mi to nechce vypsat 4 řádky ze vstupní souboru do výstupního v tom posledním cyklu while. A nevím, co tam mám dat do závorky while ().

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <ctype.h>

int main()
{
FILE *fr, *fw;
char soubor[50];
char soubor_2[50];

Napsal: 20 říj 2012, 18:15
od Andrea
Kromě toho, že tam zase špatně používáš fprintf(), tak jak ti to může zapsat do souboru 4 řádky ze vstupu, když je nemáš nikde uložené? A pro konkrétní počet opakování je dobrý cyklus for.

A co to má vlastně dělat, nemá to náhodou počítat průměr pro každého studenta zvlášť? Nebo k čemu je tam to jméno a příjmení?

Napsal: 20 říj 2012, 18:29
od Velous
Ne. Má to udělat průměr z hodnot uvedených ve vstupním souboru. Ale už jsem to vyřešil:

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <ctype.h>

Napsal: 20 říj 2012, 18:32
od Andrea
Akorát

Kód: Vybrat vše

if(fw == NULL)

určitě není chyba čtení ze souboru.

Napsal: 20 říj 2012, 18:35
od Velous
Jo, díky to jsem přehlídl. Má tam být zápisu do souboru.

A co jste myslela tím, že špatně používám fprintf?

Napsal: 20 říj 2012, 18:39
od Andrea
Přesněji je to chyba při otvírání výstupního souboru.

Tím chybným použitím fprintf() jsem myslela to, že ti tam jednou chyběla rukojeť souboru, jindy ti tam chyběl formátovací řetězec nebo ti tam chyběla zapisovaná proměnná.