Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #define N 20
- /*Dany jest plik binarny o nazwie ”dane.dat” zawierający pewną liczbę rekordów typu tDane:
- typedef struct{
- int id_towaru;
- float cena;
- int ilosc;} tDane;
- Napisać funkcję, która wyznaczy średnią arytmetyczną cen towarów, których dane znajdują się w pliku ”dane.dat”.
- 2. Napisać funkcję, przepisującą z pliku ’dane.dat’ do tablicy jednowymiarowej A ilości tych towarów, których cena jest większa od ceny średniej (wyznaczonej
- w punkcie 1) – nie więcej, niż wynosi maksymalny rozmiar tablicy.
- Podać deklaracje niezbędnych typów i zmiennych globalnych.*/
- typedef struct
- {
- int id_towaru;
- float cena;
- int ilosc;
- } tDane;
- float srednia_a(char *nazwa_pliku);
- int wprowadz_dane(char *nazwa_pliku, int a[]);
- int main()
- {
- char *nazwa_pliku;
- float sr;
- int a[N];
- nazwa_pliku="dane.dat";
- printf("Srednia: %4.2f\n", srednia_a(nazwa_pliku));
- printf("Ilosci towarow: %d", wprowadz_dane(nazwa_pliku, a));
- return 0;
- }
- float srednia_a(char *nazwa_pliku)
- {
- FILE *plik;
- tDane dane;
- int k=0;
- float sr=0;
- plik=fopen(nazwa_pliku,"rb");
- while(fread(&dane, sizeof dane,1,plik)!=0)
- {
- sr+=dane.cena;
- k++;
- }
- if(k>0)
- {
- sr/=k;
- }
- fclose(plik);
- return sr;
- }
- int wprowadz_dane(char *nazwa_pliku, int a[])
- {
- FILE *plik;
- int i;
- float sr;
- tDane dane;
- plik = fopen(nazwa_pliku,"wb");
- while(fread(&dane, sizeof dane,1,plik)!=0)
- {
- for (i=0; i<N; i++)
- {
- if(dane.cena>sr)
- {
- dane.ilosc=a[N];
- }
- }
- fclose(plik);
- return 0;
- }
- }
Add Comment
Please, Sign In to add comment