题解
【入门】订单结算
1 条题解
-
0
#include<bits/stdc++.h> using namespace std; struct bt{//订单列表的每个订单的数据类型 string mc; double jg; }a[100005],dd; bool cmp(bt a,bt b){ if(a.mc<b.mc){ return true; }else{ return false; } } int main(){ int n; cin>>n; int s=0;//最开始订单列表里面的订单为0 for(int i=1;i<=n;i++){ //获得订单的商品名称以及价格 cin>>dd.mc>>dd.jg; int falg=1;//默认订单列表中没有 //找 for(int j=1;j<=s;j++){ if(a[j].mc==dd.mc){//原来存储的商品中没有 a[j].jg+=dd.jg;//累加商品价格 falg=0; //存在过标记 break; } } if(falg==1){//没找到就添加进订单列表中 s++;//商品数量+1 a[s].mc=dd.mc; a[s].jg=dd.jg*0.75;//第一个商品 } } sort(a+1,a+s+1,cmp); for(int i=1;i<=s;i++){ cout<<a[i].mc<<" "; cout<<fixed<<setprecision(1)<<a[i].jg<<endl; } return 0; }
- 1