pta:找零钱的问题,请问这种怎么做??哪里有错误了

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

img

用代码块功能插入代码,请勿粘贴截图

#include
main()
{
int m;
scanf("%d",&m);

for (int i = 0;i <= m; i++)
    for (int j = 0; j <= m; j++)
        for (int k = 0; k <= m; k++)
        {
            if (m % 5 == 0 && 5 * k == m)
            {
                printf("fen5:%d, fen2:0, fen1:0, total:%d\n",k,k);
                break;
            }
            else 
            {
                if (5*k + 2*j + i == m)
                {
                    printf("fen5:%d, fen2:%d, fen1:%d, total:%d\n",k,j,i,k+j+i);
                    if (m / 5 == k)
                    break;
                }
            }
        }

}

运行结果及报错内容

img

我的解答思路和尝试过的方法
我想要达到的效果

这题不用循环
告诉你了问你至少多少个,那肯定是优先用5分的,其次2分的,最后1分的,而且每种硬币并没有数量限制
你直接除以5就是5分硬币的数量,取余就是剩余的数量
然后再除以2,取余
这不就有了吗
就算用循环,你逻辑也没写对呀,为什么还分两种情况讨论,5*k又代表什么