请问我这么写有什么问题吗

将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?
为啥不对啊

img

img

供参考:

#include<stdio.h>
int main()
{
    int a, b, c, money, cnt = 0;
    scanf("%d", &money);
    for (a = 1; a <= money / 5; a++)// a 是5分的个数
        for (b = 1; b <= money / 2; b++)// b 是2分的个数
            for (c = 1; c <= money; c++) // c 是1分的个数
                if (a * 5 + b * 2 + c == money) {
                    printf("5分:[ %d ], 2分:[ %d ], 1分:[ %d ]\n", a, b, c);
                    cnt++;
                }
    printf("%d\n", cnt);
    return 0;
}