上传出现浮点错误解决

问题遇到的现象和发生背景

原题是发奖金
某企业发放奖金,请你编写程序,帮助出纳员用最少的纸币发放奖金。其中奖金精确到元。

注:纸币面额为 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]不会报错吗