NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
S účinností od 26. 3. jsme aktualizovali Zásady zpracování osobních údajů – doplnili jsme informace o monitorování telefonických hovorů se zájemci o studium. Ostatní části zůstávají beze změn.

Diskuze: Textový soubor v C - aritmetický průměr

V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
acerik97
Člen
Avatar
acerik97:14.1.2015 19:40

Ahoj
Potřeboval bych nějak poradit s jedním programem.Tento program má za úkol přečíst z texťáku čísla(každý řádek obsahuje 7 čísel) dokud nebude konec souboru.Na konci každého řádku má vypsat aritmetický průměr čísel daného řádku.Nevíte prosím jak bych to mohl vyřešit?

#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE * soubor;
int a,b,c,d,e,f,g­,soucet = 0;
float prumer;

soubor = fopen("text.txt","r");

if(soubor==NULL)
{
printf("Otevreni se nepodariloZN :");
printf("Chyba souboru %s na radce %i\n",__FILE__, __LINE__);
perror(NULL);
system("PAUSE");
return 1;
}
while(!(feof(sou­bor)))
{
fscanf(soubor,"%d;%d;%­d;%d;%d;%d;%d",&a,&b,&c,­&d,&e,&f,&g);
if(soubor == '\n')
{
soucet = soucet + a + b + c + d + e + f+ g;
prumer = soucet/7;
}
printf("\nByla nactena cisla %d, %d, %d, %d, %d, %d, %d, prumer: %d",a,b,c,d,e­,f,g,prumer);
}

fclose(soubor);
printf("\nProgram skoncil");
system("PAUSE");
return 0;

}

 
Odpovědět
14.1.2015 19:40
Avatar
Lukáš Hruda
Tvůrce
Avatar
Odpovídá na acerik97
Lukáš Hruda:14.1.2015 20:45

Vkládej kód pomocí funkce pro vložení kódu.
Napiš co nefunguje.

 
Nahoru Odpovědět
14.1.2015 20:45
Avatar
Odpovídá na acerik97
Libor Šimo (libcosenior):15.1.2015 9:17
#include <stdio.h>
#define TRUE 1

int main(void)
{
    FILE *fr;
    int vysledok = 0, i = 0, c;

    if ((fr = fopen("test.txt", "r")) == NULL)
        printf("Subor test.txt sa nepodarilo otvorit.\n");
    while ((fscanf(fr, "%d", &c)) == TRUE) {
        printf ("%3d + ", c);
        vysledok += c;
        i++;
        if (!(i % 7)) {
            printf("\b\b= %d priemer = %.2f\n", vysledok, vysledok / 7.0);
            vysledok = 0;
        }
    }
    if (fclose(fr) == EOF)
        printf("Subor sa nepodarilo zavriet.\n");

    return 0;
}
Editováno 15.1.2015 9:17
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
15.1.2015 9:17
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.