Napíšte program, ktorý načíta zo súboru vstup.txt reálne čísla, pričom nevie dopredu ich počet a vypíše
do súboru vystup.txt počet čísel, ich súčet, aritmetický priemer a maximum. Súbor vstup.txt vytvorte vlastný
(nie podľa predlohy) na začiatku a do neho vložte viac ako desať reálnych čísel vedľa seba oddelených
medzerou.
Fórum › C / C++
Potrebujem pomoct s rocnikovym projektom
#4 petersonsvk
musíš sem hodit kod, nikdo ti nic vymýšlet nebude, navíc tyhle témata se tu probírají téměř rok co rok, stačí trošku projít forum.
vzhledem k tomu, že je vstup v řádce a čísla oddělená mezerou, je třeba načíst binárně do bufferu a rozparsovat podle té mezery, také jde o desetinou čárku jestli tam máš čárky nebo tečky, pro převodní funkce by tam měli být tečky, tak je případně třeba čárky nahradit tečkou..
pokud chceš vědět, jak to probíhá dej si tam výstup na obrazovku.
pokud to nepomůže dej sem kod, přes <?
Možná by stačilo použít fscanf....
hu
#5 Kit
/*
program:rocnikovy projekt
meno:Peter Henzely
datum:10.6.2019
*/
#include<stdio.h>
#include<string.h>
#include<time.h>
int main()
{
FILE *fr,*fw;
char c[10000];
int i,n,s,d,max=0;
float p;
fr=fopen("vstup.txt","r");
for(i=0;i<=d;i++)
{
fscanf(fr,"%d",&c);
}
fw=fopen("vystup.txt","w");
for(i=0;i<=n;i++)
{
s=s+c[i];
if(c[i]>max)
max=c[i];
}
float h=s;
p=h/d;
fprintf(fw,"Súčet čísel v súbore je %d",s);
fprintf(fw,"\nAritmetický priemer je %.2f",p);
fprintf(fw,"\nNajväčšie číslo zo súboru je %d",max);
d=strlen(c);
fprintf(fw,"\nPočet čísel je %d",d);
for(i=0;i<=d;i++)
{
if(c[i]==' ')
p++;
}
fclose(fr);
fclose(fw);
return 0;
}
#13 hlucheucho
jo já dělám ve více jazycích primárně v Delphi, tak si občas přetahuju blbě konstrukce
#12 petersonsvk
těch chyb tam máš víc např při použití fscanf %d bys měl mít to pole c definovaný jako int a načítat podle indexu
takže mě to funguje úpravy:
- pole čísel jako int
- načítací for horní hranice <velikost pole
- fscanf proměnná pro hodnotu přidat index d (d-čko jsem použil jako counter)
- stále v načítacím cyklu otestovat je-li načtená hodnota NULL přerušit cyklus, jinak zvýšit counter d++
- zrušit d=strlen... navíc jsi ho měl na blbém místě nejdřív jsi počítal průměr p=h/d (s d=0) a až pak za výpisy jsi zjištoval d
vstup.txt: 10 15 20 10 20 15
vystup.txt:
Súčet čísel v súbore je 90
Aritmetický priemer je 15.00
Najväčšie číslo zo súboru je 20
Počet čísel je 6
nevím co používáš za kompiler, ale mě to hned na začátku vyhodilo asi 6 chyb a varování je třeba to sledovat, některých si nemusíš hned všímat, ale jiná jsou důležitá, hlavně ta ohledně typů
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Potrebujem pomoct s programom — založil scaniak
Potrebujem pomoct s pohybom auticka — založil Petra
Poradit s projektom — založil newo
Potřebuju pomoct — založil Majox
Moderátoři diskuze