mám úlohu Precitajte vsetky realne cisla zo suboru cisla.txt a vypocitajte ich aritmeticky priemer. Vo funkcii
fscanf() vyskusajte formaty citania "$%f", "$%f \n", "$%f", "$%f \n". Konec suboru
netestujte pomocou EOF, ale pomocou navratovej hodnotu funkcie fscanf().
V súbore je 20 cisiel float, každé v jednom riadku
$0.0000
$3.1400
....
fscanf("$%f"); ani skúšat nemusím, lebo mi zostane stále na prvom riadku.
if((cisla = fopen("cisla.txt", "r")) == NULL){
printf("Nepodarilo sa otvorit subor cisla.txt \n");
return;
}
while(fscanf(cisla, "$%f\n", &cislo) != 20){
printf("%f \n", &cislo);
pocet++;
suma += cislo;
}
printf("\nAritmeticky priemer je %f \n", suma / pocet);
if(fclose(cisla) == EOF){
printf("Nepodarilo sa zatvorit subor cisla.txt \n");
return;
}
Problém je v tom, že aj keď mi program už prečíta 20 čísiel, tak pokračuje ďalej.
A ešte funkcia printf() mi vypiše prvé číslo 0,0000 ale potom mi nevypíše už ďaľšie načítané, ale stále len 0,0000.
Pritom som si program pozrel a v premennej cislo mam vždy naačítané iné (také, ako má byť), ale printf mi vypíše stále len to prvé