求余数得运算符“%”也称为模运算符。它是双目运算符,两个操作数都是整数类型的。
题目描述
读取一个带有两个小数位的浮点数,这代表货币价值。
在此之后,将该值分解为多种钞票与硬币的和,每种面值的钞票和硬币使用数量不限,要求使用的钞票和硬币的数量尽可能少。
钞票的面值是100,50,20,10,5,2。
硬币的面值是1,0.50,0.25,0.10,0.05和0.01。
第一眼看到后的思路就是将面值放到数组里,然后在for循环里取整和取余
#include<bits/stdc++.h>
using namespace std;
int main()
{
double n,a[]={100,50,20,10,5,2,1.00,0.50,0.25,0.10,0.05,0.01};
int num;
cin>>n;
cout<<"NOTAS:"<<endl;
for(int i=0;i<=5;i++){
num=n/a[i];
cout<<num<<" nota(s) de R$ "<<a[i]<<".00"<<endl;
n=n%a[i];
}
但是运行后显示编译错误
如何修改呢
n=n%a[i]; =>> n=n-num*a[i];
当然,对题来说上边的思路是错误的。。。