一:题目
**** 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);