꧁༺ཌ༈时光、淡了回忆༈ད༻꧂ 2022-05-17 09:10 采纳率: 60%
浏览 154
已结题

关于#c语言#的问题:在当前目录下已经建立好一个文本文件,名为price.txt

在当前目录下已经建立好一个文本文件,名为price.txt,分别存储6个市场的名称、地址、联系电话、联系人,以及该市场内5种水果(苹果、香蕉、菠萝、葡萄和芒果)的价格。例如,
南京银桥市场 秦淮区应天大街588号 52419019 张三 2.5 3.5 3.0 6.0 11.0
金宝天印山农副产品批发大市场 江宁区天印大道1288号 84696880 李四2.8 3.0 2.8 5.5 12.6
……
编程读取文件中的数据,并输出水果平均价格最高的市场的信息。

  • 写回答

1条回答 默认 最新

  • a5156520 2022-05-17 16:27
    关注

    下面是一个实现:

    #include <stdio.h>
    #include <string.h>
    #define NUM 100
    struct market {  // 定义市场信息结构 
        char marketName[50];  //市场名字 
        char address[50];   //地址 
        char phone[20];  //电话 
        char name[20];  //联系人 
        float applePrice;  //苹果价格 
        float bananaPrice;   //香蕉价格 
        float pinaapplePrice;  //菠萝价格 
        float grapesPrice;  //葡萄价格 
        float mangoPrice;  //芒果价格 
        float avgPrice;  //平均价格 
    };
     
     
    
    //寻找市场水果平均价格最高的市场信息, 参数为文件名字 
    void  findMaxAvgPriceMarket(char * path){
        
    
        FILE * fp = fopen(path,"r"); //打开文件 
        if(fp==NULL){
            printf("打开文件失败,程序退出!\n");
            return ; 
        }
        
        
        int i=0;
        
    
        struct market t[NUM] ;  //市场信息结构数组 ,存放从文件读取的所有信息 
        
    
        while(feof(fp)==0){     //读取文件所有市场信息到市场结构数组  
            
            
            fscanf(fp,"%s%s%s%s%f%f%f%f%f%f ",t[i].marketName,t[i].address,t[i].phone,t[i].name,
            &t[i].applePrice,&t[i].bananaPrice,&t[i].pinaapplePrice,&t[i].grapesPrice,&t[i].mangoPrice,&t[i].avgPrice); 
            
            t[i].avgPrice=(float)(t[i].applePrice+t[i].bananaPrice+t[i].pinaapplePrice+t[i].grapesPrice+t[i].mangoPrice)/5.0;
    
            i++;
        }
        
    
        int j;
        float maxAvgPrice = t[0].avgPrice;
        int index=0;
        for(j=0;j<i;j++){//寻找市场平均价格最高的市场 
    
                if(maxAvgPrice<t[j].avgPrice){
                    maxAvgPrice=t[j].avgPrice;
                    index=j; 
            }
        }
        
        //打印结果 
        printf("水果价格最高的市场为:%s\n",t[index].marketName);
        printf("其地址为:%s\n",t[index].address);
        printf("其联系电话为:%s\n",t[index].phone);
        printf("其联系人为:%s\n",t[index].name);
        printf("其苹果价格为:%.2f\n",t[index].applePrice);
        printf("其香蕉价格为:%.2f\n",t[index].bananaPrice);
        printf("其菠萝价格为:%.2f\n",t[index].pinaapplePrice);
        printf("其葡萄价格为:%.2f\n",t[index].grapesPrice);
        printf("其芒果价格为:%.2f\n",t[index].mangoPrice);
    
            
            
    }
    
    int main(){
    
        char filepath[25]="price.txt";
        
        findMaxAvgPriceMarket(filepath);
    
        
        return 0;
    }
    
    

    price.txt

    南京银桥市场 秦淮区应天大街58852419019 张三 2.5 3.5 3.0 6.0 11.0 金宝天印山农副产品批发大市场 江宁区天印大道128884696880 李四 2.8 3.0 2.8 5.5 12.6 三和大市场 深圳龙华街25687596214 王五 2.4 2.8 2.6 5.1 11.2 北京大市场 北京朝阳区74865874592 赵六 2.3 2.7 2.5 5.3 10.9 南京市场 南京街道45869875896 丁七 2.2 2.6 2.4 5.1 10.8 长沙大市场 长沙街道778895864578 欧阳飞 2.1 2.5 2.3 5.0 11
    
    

    运行结果:

    img

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

报告相同问题?

问题事件

  • 系统已结题 5月30日
  • 已采纳回答 5月22日
  • 创建了问题 5月17日

悬赏问题

  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line