Zapisywanie wyniku sredniej liczb do pliku

Zapisywanie wyniku sredniej liczb do pliku
GR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4
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.

Kopiuj
 
#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

sephirot8608
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
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.

  • Rejestracja: dni
  • Ostatnio: dni
0

Chodzi o dopisanie wyniku do tego juz istniejacego pliku

  • Rejestracja: dni
  • Ostatnio: dni
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)

sephirot8608
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
0

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

sephirot8608
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
0

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

Kopiuj
#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;

}

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.