Příspěvky odeslané z IP adresy 78.80.3.–
tak zatím mám jen opraveno toto:
ale co dál?
Dobré ráno všem,
prosím o pomoc, mám tu zdroják s cca dvaceti chybičkami plus exáč (viz odkaz dole, jak by měl výsledný program fungovat), mohl by mi prosím někdo pomoci nalézt chyby? Díky!
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
typedef struct s_kurz {
char mena[];
int mnozstvi;
double kurz;
} KURZ;
double cti_kladne_cislo() {
double cislo = 0;
int pocet_nactenych, zbytecny_znak, pokus;
do {
pokus++;
if (pokus > 1) {
if (pocet_nactenych = 0) {
printf("Nezadal jsi cislo, zadej desetinne cislo: ");
} else if (cislo <= 0) {
printf("Cislo musi byt kladne, zadej kladne cislo: ");
}
}
pocet_nactenych = scanf("%lf", cislo);
do {
zbytecny_znak = getchar();
} while (zbytecny_znak != '\r' && zbytecny_znak != '\n');
} while (pocet_nactenych != 1 && cislo <= 0);
}
int nacti_listek(char *nazev_souboru, KURZ kurzy[], int max_pocet) {
FILE *soubor;
soubor = fopen(nazev_souboru, "r");
if (soubor) {
while (i < max_pocet && fscanf(soubor, "%d %3s %lf\n", &kurzy[i].mnozstvi, kurzy[i].mena, &kurzy[i].kurz) == 3); {
i++;
}
fclose(soubor);
printf("Kurzovni listek byl nacten.\n");
} else {
printf("Nelze nacist kurzy ze souboru %s.\n", nazev_souboru);
}
return i;
}
void uloz_listek(char *nazev_souboru, KURZ kurzy[], int pocet) {
FILE *soubor;
int i;
soubor = fopen(nazev_souboru, "r");
if (soubor) {
for (i = 0; i < pocet; i++)
fprintf(soubor, "%d %s %lf\n", &kurzy[i].mnozstvi, kurzy[i].mena, &kurzy[i].kurz);
}
fclose(soubor);
printf("Kurzovni listek byl ulozen do souboru %s.\n");
} else {
printf("Nelze ulozit kurzy do souboru %s.\n", nazev_souboru);
}
}
void zmen_listek(KURZ kurzy[], int pocet) {
int i;
printf("Zadej nove kurzy:\n");
for (i = 0; i <= pocet; i++)
printf("%d %s = ", kurzy[i].mnozstvi, kurzy[i].mena);
kurzy[i].kurz = cti_kladne_cislo()
}
int main(int argc, char *argv[]) {
char nazev_souboru[] = "kurzy.txt";
KURZ kurzy[5];
int pocet;
pocet = nacti_listek(nazev_souboru, kurzy, 10);
if (pocet) {
zmen_listek(kurzy, pocet);
uloz_listek(nazev_souboru, kurzy, pocet);
}
system("PAUSE");
return 0;
}