题目描述
当前,我们已经进入一个“大数据”时代,人们寄希望通过大数据分析技术挖掘出有价值的商业信息。今天我们也小试身手,运用数据分析一下利群超市里几种产品过去一周的销售情况,以便为销售好的产品准备更充足的货源以应对春节购物狂欢。
假定POS机记录了每种产品的名称、品牌、价格和销售数量。请根据销量对这些产品进行从高到底的排序,并依次输出这些产品详细信息。
输入
第一行一个整数T(0<T<30),表示要分析的产品的种类。
接下来有T行,每行包括四个数据,分别为产品的名称(长度小于20)、品牌(长度小于20)、价格(实数)和销售数量(整数,不大于1000),输入数据以空格隔开,且假定产品名称和品牌中都不包括空格字符。
输出
多行,按照销售数量从高到低的顺序依次输出各产品的名称、品牌、价格和销售数量等信息,各数据之间以空格隔开,价格保留2位小数。
样例输入 Copy
4
pijiu qingdao 9.5 120
niunai sanyuan 18 150
wenju deli 20 98
qiuxie nike 500 50
样例输出 Copy
niunai sanyuan 18.00 150
pijiu qingdao 9.50 120
wenju deli 20.00 98
qiuxie nike 500.00 50
标签
题目分析:
结构体关键词sort排序,cout输出格式控制
错误原因:
#include<iomanip>
fixd和setprecision(2)一起用才是保留两位有效数字,和setprecision(2)单用不同。
AC代码:
#include<iostream>
#include<algorithm>
#include<vector>
#include<string>
#include<iomanip>
using namespace std;
struct node{
string name;
string band;
double price;
int num;
};
bool cmp(const node & a,const node & b){
return a.num > b.num;
}
int main(){
int t;
node a[40];
cin >> t;
for(int i = 0;i < t;i ++)
{
cin >> a[i].name >>a[i].band >> a[i].price >> a[i].num;
}
sort(a,a + t,cmp);
for(int i = 0;i < t;i ++)
{
cout << a[i].name <<" " << a[i].band <<" " << fixed << setprecision(2) << a[i].price <<" " <<a[i].num << endl;
}
return 0;
}