Zdravím,
Mám vytvořit program, který má se souborem provést následující činnosti:
1. Celkový počet znaků v souboru
2. Celková počet řádek
3. Průměrný počet znaků na řádek
4. Nejdelší řádka
5. Nejkratší řádka
První dvě úlohy mám již vyřešené, třetí částečně (potřeboval bych výsledek v desetinných číslech), 4 a 5 neumím vyřešit. Pokud někdo víte jak na to, prosím poraďte.
Díky
#include <stdio.h>
#include <stdlib.h>
FILE *f;
int main(void)
{
int znaky, radky = 1, nejdelsi = 0, nejkratsi, celkem = 0;
float prumer;
f = fopen("soubor.txt", "r");
while((znaky = getc(f))!= EOF)
{
celkem++;
if (znaky == '\n')
{
radky++;
}
}
printf("pocet znaku %d\n",celkem);
printf("pocet radku je %d\n",radky);
prumer = celkem / radky;
printf("prumerny pocet znaku na radku je %4.5f",prumer);
system("PAUSE");
fclose(f);
return 0;
}
C - práce se souborem Vyřešeno
- Iron
- Level 2
- Příspěvky: 185
- Registrován: prosinec 07
- Bydliště: Kobeřice
- Pohlaví:
- Stav:
Offline
- Kontakt:
C - práce se souborem
Naposledy upravil(a) Iron dne 04 kvě 2009 17:28, celkem upraveno 1 x.
Re: C - práce se souborem
Body 3 a 4 bych řešil tak,že bych četl soubor po znacích a hledal oddělovače řádků.Při nalezení by se to vyhodnotilo (jedna proměnná by byla min a druhámax) a vynuloval by se counter.
- Iron
- Level 2
- Příspěvky: 185
- Registrován: prosinec 07
- Bydliště: Kobeřice
- Pohlaví:
- Stav:
Offline
- Kontakt:
Re: C - práce se souborem Vyřešeno
EDIT: Tak už to počítá vše, nejdelší i nejkratší řádek. Díky Senderovi za snahu, byť jsem již věděl, to co řekl, spíše jsem potřeboval vidět hotový kód. Kód zobrazený v tomto příspěvku je správný.
Aktualizovaný kód:
#include <stdio.h>
#include <stdlib.h>
FILE *f;
int main(void)
{
int znaky, akrada = 1, akpocet = 0, nejdelsi = 0, nejkratsi;
float prumer, celkem = 0, radky = 1;
f = fopen("soubor.txt", "r");
while((znaky = getc(f))!= EOF)
{
celkem++;
akpocet++;
if (znaky == '\n')
{
radky++;
if (nejdelsi < akpocet)
{
nejdelsi = akpocet;
}
if (nejkratsi > akpocet)
{
nejkratsi = akpocet;
}
akpocet = 0;
}
}
printf("pocet znaku %4.0f\n",celkem);
printf("pocet radku je %4.0f\n",radky);
prumer = celkem / radky;
printf("prumerny pocet znaku na radku je %4.5f\n",prumer);
printf("nekratsi radka ma znaku %d\n",nejkratsi);
printf("nejdelsi radka ma znaku %d\n",nejdelsi);
system("PAUSE");
fclose(f);
return 0;
}
Aktualizovaný kód:
#include <stdio.h>
#include <stdlib.h>
FILE *f;
int main(void)
{
int znaky, akrada = 1, akpocet = 0, nejdelsi = 0, nejkratsi;
float prumer, celkem = 0, radky = 1;
f = fopen("soubor.txt", "r");
while((znaky = getc(f))!= EOF)
{
celkem++;
akpocet++;
if (znaky == '\n')
{
radky++;
if (nejdelsi < akpocet)
{
nejdelsi = akpocet;
}
if (nejkratsi > akpocet)
{
nejkratsi = akpocet;
}
akpocet = 0;
}
}
printf("pocet znaku %4.0f\n",celkem);
printf("pocet radku je %4.0f\n",radky);
prumer = celkem / radky;
printf("prumerny pocet znaku na radku je %4.5f\n",prumer);
printf("nekratsi radka ma znaku %d\n",nejkratsi);
printf("nejdelsi radka ma znaku %d\n",nejdelsi);
system("PAUSE");
fclose(f);
return 0;
}
-
- Mohlo by vás zajímat
- Odpovědi
- Zobrazení
- Poslední příspěvek
-
-
Notebook pro kancelářské práce
od Bulit.Sven » 11 srp 2024 13:06 » v Rady s výběrem hw a sestavením PC - 4
- 1575
-
od meda2016
Zobrazit poslední příspěvek
11 srp 2024 18:18
-
-
-
Herní PC do 18 000 Kč – WoW, PoE2?, běžná práce, stará sestava nejspíš odešla
od MoA285 » 25 kvě 2025 21:47 » v Rady s výběrem hw a sestavením PC - 5
- 1465
-
od windroid2
Zobrazit poslední příspěvek
26 kvě 2025 08:51
-
Zpět na “Programování a tvorba webu”
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 4 hosti