- #include <stdio.h>
- int main(void)
- {
- FILE *odczyt= fopen("bmi.dat","rb");
- if(odczyt==NULL)
- {printf("Blad otwarcia\n"); return -1;}
- FILE *zapis=fopen("bmi.txt", "w");
- FILE *nied=fopen("niedowaga.txt", "w");
- FILE *norm=fopen("norma.txt", "w");
- FILE *nadw=fopen("nadwaga.txt", "w");
- float x, ile = 0;
- int licznik=0, plec,wzrost;
- float masa, bmi,wzrostmetr;;
- char pl;
- int ilek=0, ilem=0;
- float sumak =0, sumam=0,sredniak, sredniam;
- int ile_nied=0, ile_norm=0, ile_nadw=0;
- fread(&plec,sizeof(int),1,odczyt);
- fread(&masa,sizeof(float),1,odczyt);
- fread(&wzrost,sizeof(int),1,odczyt);
- while (feof(odczyt) == 0)
- {
- wzrostmetr=(float)wzrost/100;
- bmi = masa/(wzrostmetr*wzrostmetr);
- if(plec==0)
- {
- pl = 'K';
- ilek++;
- sumak+=bmi;
- }
- else
- {
- pl = 'M';
- ilem++;
- sumam+=bmi;
- }
- ;
- printf("[%c] >>> %.2f [kg] >>> %d [cm] >>> BMI = %.2f \n", pl, masa, wzrost, bmi);
- fprintf(zapis,"[%c] >>> %.2f [kg] >>> %d [cm] >>> BMI = %.2f \n", pl, masa, wzrost, bmi);
- if(bmi < 18.5)
- {
- fprintf(nied,"[%c] >>> %.2f [kg] >>> %d [cm] >>> BMI = %.2f \n", pl, masa, wzrost, bmi);
- ile_nied++;
- }
- else if(bmi < 25)
- {
- fprintf(norm,"[%c] >>> %.2f [kg] >>> %d [cm] >>> BMI = %.2f \n", pl, masa, wzrost, bmi);
- ile_norm++;
- }
- else
- {
- fprintf(nadw,"[%c] >>> %.2f [kg] >>> %d [cm] >>> BMI = %.2f \n", pl, masa, wzrost, bmi);
- ile_nadw++;
- }
- fread(&plec,sizeof(int),1,odczyt);
- fread(&masa,sizeof(float),1,odczyt);
- fread(&wzrost,sizeof(int),1,odczyt);
- }
- fclose(odczyt);
- zapis=fopen("bmi.txt", "r");
- sredniak = (float)sumak/ilek;
- sredniam = (float)sumam/ilem;
- printf("Liczba kobiet: %d \n", ilek);
- printf("Liczba mezczyzn: %d \n", ilem);
- printf("srednia bmi kobiet: %f \n", sredniak);
- printf("srednia bmi mezczyzn: %f \n", sredniam);
- printf("ilosc ludzi z niedowaga: %d \n", ile_nied);
- printf("ilosc ludzi normalnych: %d \n", ile_norm);
- printf("ilosc ludzi z nadwaga: %d \n", ile_nadw);
- fclose(odczyt);
- fclose(zapis);
- fclose(nied);
- fclose(norm);
- fclose(nadw);
- return 0;
- }