偏执♛的傲♀ 2022-05-25 21:46 采纳率: 75%
浏览 22
已结题

怎么写呀,c语言编程

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

img

img

  • 写回答

1条回答 默认 最新

  • a5156520 2022-05-26 10:04
    关注

    一个实现,供参考:

    
    #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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 6月3日
  • 已采纳回答 5月26日
  • 创建了问题 5月25日

悬赏问题

  • ¥35 引用csv数据文件(4列1800行),通过高斯-赛德尔法拟合曲线,在选取(每五十点取1点)数据,求该数据点的曲率中心。
  • ¥20 程序只发送0X01,串口助手显示不正确,配置看了没有问题115200-8-1-no,如何解决?
  • ¥15 Google speech command 数据集获取
  • ¥15 vue3+element-plus页面崩溃
  • ¥15 像这种代码要怎么跑起来?
  • ¥15 安卓C读取/dev/fastpipe屏幕像素数据
  • ¥15 pyqt5tools安装失败
  • ¥15 mmdetection
  • ¥15 nginx代理报502的错误
  • ¥100 当AWR1843发送完设置的固定帧后,如何使其再发送第一次的帧