自律给我自由480
2022-05-15 09:55
采纳率: 0%
浏览 15

c语言:结构体,读取文件信息并输出

C语言题目:
在当前目录下已经建立好一个文本文件,名为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 …… 编程读取文件中的数据,并输出水果平均价格最高的市场的信息。

预期输出:
水果价格最高的市场为:南京银桥市场
其地址为:秦淮区应天大街588号
其联系电话为:52419019
其联系人为:张三
其苹果价格为:2.50
其香蕉价格为:3.50
其菠萝价格为:3.00
其葡萄价格为:6.00
其芒果价格为:12.00

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

1条回答 默认 最新

  • a5156520 2022-05-15 14:31

    一个实现,供参考:

    #include <stdio.h>
    #include <string.h>
    #define NC 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[NC] ;  //市场信息结构数组 ,存放从文件读取的所有信息 
        
    
        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 12.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

    评论
    解决 无用
    打赏 举报 编辑记录

相关推荐 更多相似问题