一:题目
**** 180.90 88折
**** 10.25 65折
**** 56.14 9折
**** 104.65 9折
**** 100.30 88折
**** 297.15 半价
**** 26.75 65折
**** 130.62 半价
**** 240.28 58折
**** 270.62 8折
**** 115.87 88折
**** 247.34 95折
**** 73.21 9折
**** 101.00 半价
**** 79.54 半价
**** 278.44 7折
**** 199.26 半价
**** 12.97 9折
**** 166.30 78折
**** 125.50 58折
**** 84.98 9折
**** 113.35 68折
**** 166.57 半价
**** 42.56 9折
**** 81.90 95折
**** 131.78 8折
**** 255.89 78折
**** 109.17 9折
**** 146.69 68折
**** 139.33 65折
**** 141.16 78折
**** 154.74 8折
**** 59.42 8折
**** 85.44 68折
**** 293.70 88折
**** 261.79 65折
**** 11.30 88折
**** 268.27 58折
**** 128.29 88折
**** 251.03 8折
**** 208.39 75折
**** 128.88 75折
**** 62.06 9折
**** 225.87 75折
**** 12.89 75折
**** 34.28 75折
**** 62.16 58折
**** 129.12 半价
**** 218.37 半价
**** 289.69 8折
二:上码(注意取款机上一次只能取整 )
#include<bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
vector<string> v1,v2,v3;
vector<double>v4;//用与处理价格问题
for (int i = 0; i < n; i++) {
string str1,str2,str3;
cin >> str1 >> str2 >> str3;
v1.push_back(str1);
v2.push_back(str2);
v3.push_back(str3);
}
//处理 半价 折问题
for(int i = 0; i < n; i++) {
if(v3[i] == "半价") {
v4.push_back(0.5);
} else {
string str = "";
for(auto ch: v3[i]) {
if(ch != '折') {
str+=ch;
}
}
if(str.size() == 4) {
int num = stoi(str);
v4.push_back(num*0.01);
} else {
int num = stoi(str);
v4.push_back(num*0.1);
}
}
}
// for(auto nums:v4){
// cout << nums << endl;
// }
double sum = 0;
for(int i = 0; i < n; i++) {
//将string类型数据转换成 double
double nums = atof(const_cast<const char *>(v2[i].c_str()));
sum+=nums*v4[i];
}
cout << sum;
}
将string类型数据转换成 double
string v2[i] ="12232';
double nums = atof(const_cast<const char *>(v2[i].c_str()));
将string类型的数据转换成int
int num = stoi(str);