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

关于#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 onlyoffice编辑完后立即下载,下载的不是最新编辑的文档
  • ¥15 求caverdock使用教程
  • ¥15 Coze智能助手搭建过程中的问题请教
  • ¥15 12864只亮屏 不显示汉字
  • ¥20 三极管1000倍放大电路
  • ¥15 vscode报错如何解决
  • ¥15 前端vue CryptoJS Aes CBC加密后端java解密
  • ¥15 python随机森林对两个excel表格读取,shap报错
  • ¥15 基于STM32心率血氧监测(OLED显示)相关代码运行成功后烧录成功OLED显示屏不显示的原因是什么
  • ¥100 X轴为分离变量(因子变量),如何控制X轴每个分类变量的长度。