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

C++ C a C++ Textový soubor v C - aritmetický průměr

Avatar
acerik97
Člen
Avatar
acerik97:

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
Odpovídá na acerik97
Lukáš Hruda (Luckin):

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):
#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í
+1 bodů
Ř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.