Diskuze: Tisknuti vysledku operace do souboru
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Neregistrovaný
Zobrazeno 7 zpráv z 7.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Ahoj,
podívej se třeba na následující příklad kde do souboru zapisuji text z
cyklu:
http://www.itnetwork.cz/index.php?…
Používám tam klasické fopen("nazev_souboru", "metoda (r/w)").
Ahoj,
tak prostě necháš vypsat více textu ne? S tím by neměl být problém pokud
ti něco nepůjde postni sem zdroják já se na to mrknu
Před pár dny jsem sem psal. Bylo to ohledně přepisu kódu na rozpis
utkání. Moc jsi mi pomohl. Posílám celý kód, který jsem už trochu
upravil.
Snad dobře.
#include <stdio.h>
#include <stdlib.h>
int je_liche(int cislo)
{
if(cislo % 2 == 0)
return 0;
else
return 1;
}
int main()
{
int pocet_tymu, pocet_zapasu, odehraje, jedno_kolo, celkem_kol;
int n = 0, k = 0, s = 0, i = 0, j = 0, tym_a = 0, tym_b = 0;
FILE *fw;
printf("Vitejte v programu, ktery Vam vygeneruje rozpis utkani.");
printf("Zadejte pocet tymu: ");
scanf("%d", &pocet_tymu);
while (getchar() != ''); /*Vycisteni bufferu*/
pocet_zapasu = pocet_tymu * (pocet_tymu - 1)/2;
odehraje = pocet_tymu - 1;
jedno_kolo = pocet_tymu / 2;
celkem_kol = pocet_zapasu / jedno_kolo;
printf("Zakladni informace o sezone:");
printf("Celkovy pocet zapasu pri tomto poctu tymu bude %d.", pocet_zapasu);
printf("Kazdy tym odehraje %d zapasu.", odehraje);
printf("Pocet zapasu v jednom kole bude %d.", jedno_kolo);
printf("Celkem se odehraje %d kol.", celkem_kol);
if(je_liche(pocet_tymu))
n = pocet_tymu + 1;
else
n = pocet_tymu;
k = n - 1;// počet kol
s = n / 2;// počet zápasů na kolo
for(i = 1; i <= k; i++)
{
printf("Kolo: %d", i);
if(!je_liche(pocet_tymu))
{
printf("tym %d - tym %d", i, n);
}
for(j = 1; j < s; j++)
{
tym_a = ((n - j + i - 2) % k) + 1;
tym_b = ((i + j - 1) % k) + 1;
printf("tym %d - tym %d", tym_a, tym_b);
}
}
fw = fopen("ROZPIS UTKANI.TXT", "w");
fprintf(fw, "Vitejte v programu, ktery Vam vygeneruje rozpis utkani.");
fprintf(fw, "Zakladni informace o sezone:");
fprintf(fw, "Celkovy pocet zapasu pri tomto poctu tymu bude %d.", pocet_zapasu);
fprintf(fw, "Kazdy tym odehraje %d zapasu.", odehraje);
fprintf(fw, "Pocet zapasu v jednom kole bude %d.", jedno_kolo);
fprintf(fw, "Celkem se odehraje %d kol.", celkem_kol);
fclose(fw);
getchar();
return 0;
}
Ahoj,
jo celkem dobrý, ale podle mě jsi to chtěl spíše nějak takhle:
#include <stdio.h>
#include <stdlib.h>
int je_liche(int cislo)
{
if(cislo % 2 == 0)
return 0;
else
return 1;
}
int main()
{
int pocet_tymu = 0, pocet_zapasu = 0, odehraje = 0, jedno_kolo = 0, celkem_kol = 0;
int n = 0, k = 0, s = 0, i = 0, j = 0, tym_a = 0, tym_b = 0;
FILE *fw;
fw = fopen("ROZPIS UTKANI.TXT", "w");
printf("Vitejte v programu, ktery Vam vygeneruje rozpis utkani.Zadejte pocet tymu:");
scanf("%d", &pocet_tymu);
pocet_zapasu = pocet_tymu * (pocet_tymu - 1)/2;
odehraje = pocet_tymu - 1;
jedno_kolo = pocet_tymu / 2;
celkem_kol = pocet_zapasu / jedno_kolo;
if(je_liche(pocet_tymu))
n = pocet_tymu + 1;
else
n = pocet_tymu;
k = n - 1;// počet kol
s = n / 2;// počet zápasů na kolo
fprintf(fw, "Vitejte v programu, ktery Vam vygeneruje rozpis utkani.Zakladni informace o sezone:Celkovy pocet zapasu pri tomto poctu tymu bude %d.Kazdy tym odehraje %d zapasu.Pocet zapasu v jednom kole bude %d.Celkem se odehraje %d kol.", pocet_zapasu, odehraje, jedno_kolo, celkem_kol);
for(i = 1; i <= k; i++)
{
fprintf(fw, "Kolo: %d", i);
if(!je_liche(pocet_tymu))
{
fprintf(fw, "tym %d - tym %d", i, n);
}
for(j = 1; j < s; j++)
{
tym_a = ((n - j + i - 2) % k) + 1;
tym_b = ((i + j - 1) % k) + 1;
fprintf(fw, "tym %d - tym %d", tym_a, tym_b);
}
}
fclose(fw);
}
Jinak docela si komplikuješ život tím že máš půlku kódu zbytečnýho a některé proměnné se ti tam opakují. Se mi nechce přemýšlet jak to ve fotbale je takže proměnný neřešim. Kód sem přepsal.
Zobrazeno 7 zpráv z 7.