找零钱的c++编程题,谁能帮帮看看:为啥35.8的得不出正确答案
c++吧
全部回复
仅看楼主
level 1
df11124 楼主
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
const double a[]={50,20,10,5,2,1,0.5,0.2,0.1,0.05,0.02,0.01};
void fun(double m)
{
if (m==0) cout<<"结算完毕"<<endl; //递归出口
else
{
if (m>=5000)
{
int c;
c=m/50;
cout<<"50的钞票:"<<(c)<<endl;
return fun(m-c*50);
}
for (int i=0;i<11;i++)
{
if ((m<a[i])&&(m>=a[i+1])) //找出刚好小于应找金额所属的最大的钞票面额
{
int c;
c=m/a[i+1]; //应找金额的可以有多少张刚好的钞票面额
cout<<(a[i+1])<<"的钞票:"<<(c)<<endl;
return fun(m-c*a[i+1]); //剩余的应找金额
}
}
}
}
int main()
{
double m,c;
cin>>m>>c;
cout<<"要找"<<c-m<<"元"<<endl;
fun(c-m); //c-m为应找的金额
return 0;
}
2020年02月05日 11点02分 1
level 1
df11124 楼主
顶一下
2020年02月05日 11点02分 2
level 5
浮点数计算的关系吧
2020年02月05日 12点02分 3
1