●编写程序,计算person. data中女性成员BMI的平均值和标准差。要求,先输出平均值、再输出标准差,两者之间由一个空格分隔,结果保留两位小数;键盘输入文件名(绝对路径)。
供参考:
#include <stdio.h>
#include <string.h>
int main()
{
double Bmi,totalBMI=0;
char id[20];
char gender;
int age;
float weight;
float height;
int totalNum = 0; //统计人数
FILE *fp;
char filename[64];
char buffer[1003]={0};//缓冲区
printf("Input file name: ");
scanf("%s", filename);
if((fp=fopen(filename, "r")) == NULL ){
perror(filename);
//return -1;
}
else{
while(1){
memset(buffer,0,1003);
if(fgets(buffer, 1003, fp) == NULL) break;
sscanf(buffer,"%s,%c,%d,%f,%f",id,&gender,&age,&weight,&height);
if(gender == 'F'){
totalBMI += weight/(height*height);
totalNum++;
}
}
fclose(fp);
if(totalNum != 0)
printf("%f",totalBMI/totalNum);
else
printf("No Found.");
}
return 0;
}