浮点数不能直接用==比较大小 用fabs(a-b)<1e-6

请你写一个程序来分析食堂的流水记录,通过对账来评选出“数学食堂”。

输入格式

前三行是食堂的名字s和流水记录数n,后面按照前三行食堂的顺序输入流水账单。

流水账单由五项组成:米饭重量 荤菜单价 素菜单价 总价 阿姨的名字。

输出格式

第一行输出“数学食堂”的名称和错误率(百分数,保留3位小数)。如果出现平局,则按输入的顺序输出第一家食堂。

余下行依次输出该食堂中算错钱的阿姨的名字,一行一个名字,按流水单的顺序输出。 

样例输入

QF 5
XY 3
LS 4
2 2.5 5.5 8.4 aa
1 1.5 6 7.9 bb
2 1.5 6.5 8.4 cc
1 2.5 7 9.7 dd
3 2.5 8.5 11.6 ee
2 2.5 6.5 9.4 ff
2 3 5.5 12.9 gg
2 1.5 6.5 8.4 hh
2 1.5 5.5 7.4 ii
2 1.5 6 7.9 jj
1 2.5 5.5 8.4 kk
1 2 8 10.2 ll

样例输出content_copy

QF 20.000%
bb

提示/说明

在商大食堂中,一两饭0.2元,二两饭0.4元。

#include<algorithm>
#include <iostream>
#include<string>
#include<math.h>
#include<vector>

using namespace std;
 
int main(){
    vector<vector<string>>cuo;
    float c[3];
   string ming[3];
    for(int i=0;i<3;i++)
    {
        cin>>ming[i]>>c[i];
    }
    
    string ayi;
    for(int i=0;i<3;i++)
    {
        vector<string>cuo2;
        for(int j=0;j<c[i];j++)
        {
            float weight,rou,su,sum;
            cin>>weight>>rou>>su>>sum>>ayi;
            if(fabs((0.2*weight+rou+su)-sum)>1e-6)
            {
                    cuo2.push_back(ayi);
            }
        }
       
        cuo.push_back(cuo2);//二维vector数组  初始为空所以不能在第二层循环内用cuo[i]
        cuo2.clear();
    }
   
    float minn=1;
    int shitang=0;
    for(int i=0;i<3;i++)
    {
        if(cuo[i].size()/c[i]<minn)
        {
            minn=cuo[i].size()/c[i];
            shitang=i;
        }
    }
    printf("%s %.3lf%%\n",ming[shitang].c_str(),minn*100);
    for(auto it=cuo[shitang].begin();it!=cuo[shitang].end();it++)
    {
        cout<<*it<<endl;
    }
    
    
    
}
   

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值