Zapisywanie wyniku sredniej liczb do pliku

0

Witam!
Chciałbym napisać program pobierający wartosci liczbowe z pliku i obliczający średnią tych liczb. Napisałem program który pobiera liczby z pliku, ale nie wiem jak zrobić aby dodatkowo obliczał średnią i zapisywał wynik w pliku.

 
#include <stdio.h>
#define N 50
int main() 
{
	int 
      int j, i=0;
      int liczby[N];
      FILE *plik;
      if  ((plik=fopen("numery.txt", "r"))==NULL)
	printf("Nie moge otorzyc pliku!\n");     
      while (feof(plik)==0)
      {
               fscanf(plik, "%d", &liczby[i]);
               i++;
      }
      if  (fclose(plik))
	 printf("Nie moge zamknac pliku!\n");
      for(j=0;j<i;j++)
	 printf("%d ", liczby[j]);

	system("pause");
      return 0;
      
}

Pozdrawiam

0

No i w czym tak naprawdę masz problem? Obliczasz średnią - tworzysz drugi plik - (chyba, że chcesz w tym samym?) i zapisujesz fprintf-em do pliku.

0

Chodzi o dopisanie wyniku do tego juz istniejacego pliku

0

problemem jest to, ze wiadomo - na samej gorze trzeba zadeklarowac zmienna np float srednia; Trzeba przed printf co wypisuje liczby na samym dole napisac srednia=kazdy element tablicy dodany / ilosc elementow tej tablicy , a nastepnie dopisać to jako wynik, jako kolejna liczba do pliku.
Nie wiem po prostu jak to napisać, skad mam wiedziec ile elementow jest w tej tablicy (liczba cyfr w pliku moze sie zmienic)

0

No to zadam inne pytanie - skąd masz ten kod??

0

Zwykle nie daję gotowego kodu, ale są święta więc może się zlituję:

#include <stdio.h>
#include <stdlib.h>

#define N 50
int main()
{
      int j, i=0;
      int liczby[N];
      FILE *plik;
      float srednia = 0.0f;
      int sum = 0;

      if  ( ( plik = fopen("liczby.txt", "r+") ) == NULL )
        printf("Nie moge otworzyc pliku!\n");
      else
      {
          while ( fscanf(plik, "%d", &liczby[i]) != EOF )
          {
              sum += liczby[i];
              i++;
          }

          for(j=0;j<i;j++)
             printf("%d ", liczby[j]);

          srednia = (float)sum / i;
          printf("\nSrednia to: %f\n\n", srednia);
          fprintf(plik, "\nSrednia: %f", srednia);

          if  (fclose(plik))
              printf("Nie moge zamknac pliku!\n");
      }

      return 0;

}

1 użytkowników online, w tym zalogowanych: 0, gości: 1