怎么写呀,c语言编程

●编写程序,计算person. txt中所有人员的平均年龄。要求,结果保留两位小数;键盘输入文件名(绝对路径)。

img

img

一个实现,供参考:


#include <stdio.h>
#include <string.h>
int main(void){
    
    char filepath[100];
    scanf("%s",filepath);  //获取文件的目录 
    
    strcat(filepath,"person.txt"); //把获取的文件目录和文件名拼接起来,形成文件的绝对路径,以方便对文件的读取和访问 
    FILE * fp = fopen(filepath,"r");
    if(fp==NULL){
        printf("打开文件失败!\n");
        return 0;
    }
    
    float avgAge=0;
    int num=0;
    char ids[20];
    char sex;
    int age;
    float weight;
    float height;
     
     
    
    while(feof(fp)==0){ //如果还没有到达文件结尾。则循环从文件中读取数据
        fscanf(fp,"%s\t%c\t%d\t%f\t%f\n",ids,&sex,&age,&weight,&height);  //依次读取各参数到变量 
        if(strcmp("//",ids)!=0){ //如果每一行第一个字符串不是"\\",则表示改行有年龄数据,把年龄读入平均年龄变量avgAge中 
            avgAge+=age;   //累加一个年龄到平均年龄变量avgAge中 
            num++; //人物数量加一 
        //    printf("age=%d,avgAge=%.2f,num=%d\n",age,avgAge,num);
        }else{  //如果改行第一个字符串是"//",则表示文件达到结尾,退出循环 
            break;
        } 

    }
    
    
    printf("%.2f",(float)avgAge/num);  //打印平均年龄 
    
    return 0;
} 

img