1
输入
2 A:23.50 B:100.00 1 C:650.00 3 A:59.99 A:120.00 X:10.00
不一定是2位小数 题目没有规定 有可能是 23 100没有小数
一定要注意
2
在处理2 A:23.50 B:100.00
时我用的是string 用的是cin 就比较麻烦
if(mystring.at(0)=='A' ||mystring.at(0)=='B' ||mystring.at(0)=='C' ){ if(len==7){ danxiangqian=(mystring.at(2)-'0')*10 +mystring.at(3)-'0'+(mystring.at(5)-'0')*0.1+(mystring.at(6)-'0')*0.01; if(danxiangqian <=600.00){ fapiao_sum[j]=fapiao_sum[j]+danxiangqian; }
最好用scanf
scanf(" %c:%lf",&type,&cost);
注意 (1) lf表示double
(2) 前面还有一个空格 啊啊啊
3
数据不一定是按顺序来的 比如
1100.00 3
2 B:600.00 A:400.00
1 C:200.50
1 A:100.00
我只能检测到1000不是正确的1100
所以是 没有充分理解题意 不是直接写的for(int i=0;i<N;i++){ zong_sum=zong_sum+fapiao_sum[i]; if(zong_sum>Q){ zong_sum=zong_sum-fapiao_sum[i]; break; } }
应该用0-1背包(是个啥。。。。)
4
c++输出时可以控制小数位数 不一定用c的printf
比如有(在用浮点表示的输出中,setprecision(n)表示有效位数。)
ps: QT调试 看变量 挺费劲的 还是用VS2013吧