原题是发奖金
某企业发放奖金,请你编写程序,帮助出纳员用最少的纸币发放奖金。其中奖金精确到元。
注:纸币面额为 100 50 20 10 5 2 和 1 元。
输入格式
金额 (以元为单位,小于 10000 的整数)
输出格式
按钞票面额由大到小的顺序输出各种钞票的张数(参见输出样例)
输入样例
5382
输出样例
100元: 53张
50元: 1张
20元: 1张
10元: 1张
5元: 0张
2元: 1张
1元: 0张
代码在本地运行正常,上传后出现浮点错误,我查了可能是除数为0导致,但是我的除数没有出现0的情况,也就是读取不到0,在代码中加上判断a[i]为0的情况就解决了,很疑惑我a[i]根本就不会等于0啊
#include
using namespace std;
int main() {
int m;
int a[7] = {100, 50, 20, 10, 5, 2, 1}, an[6] = {0};
cin >> m;
for (int i = 0; i <= 6; i++) {
if (a[i] == 0)
break;
an[i] = m / a[i];
m = m - an[i] * a[i];
printf("%3d元: %2d张\n", a[i], an[i]);
}
}
浮点错误
为什么会出现这样的错误啊,为什么加上判断语句就通过了
不清楚为什么会这样,不过an[ ]不应该有7个元素吗,an[6]不会报错吗