这个C语言的错误怎么解决

问题是第一张图片上的第一行标注,这个问题已经困扰了我一下午也没有解决

img

img

算法不对,暴力解决就可以,要六重循环:

there are 4562 ways.

#include <stdio.h>

int main(int argc, char *argv[])
{
    int coin1 = 1, coin2 = 2, coin5 = 5, coin10 = 10, coin20 = 20, coin50 = 50, sum = 0;
    for (int a = 0; a * coin50 < 101; a++)
    {
        for (int b = 0; a * coin50 + b * coin20 < 101; b++)
        {
            for (int c = 0; a * coin50 + b * coin20 + c * coin10 < 101; c++)
            {
                for (int d = 0; a * coin50 + b * coin20 + c * coin10 + d * coin5 < 101; d++)
                {
                    for (int e = 0; a * coin50 + b * coin20 + c * coin10 + d * coin5 + e * coin2 < 101; e++)
                    {
                        for (int f = 0; a * coin50 + b * coin20 + c * coin10 + d * coin5 + e * coin2 + f * coin1 < 101;
                             f++)
                        {
                            if (a * coin50 + b * coin20 + c * coin10 + d * coin5 + e * coin2 + f * coin1 == 100)
                            {
                                printf("50yuan %d, 20yuan %d, 10yuan %d, 5yuan %d,2yuan %d 1yuan %d\n", a, b, c, d, e,
                                       f);
                                sum++;
                            }
                        }
                    }
                }
            }
        }
    }
    printf("there are %d ways\n", sum);
}

你的if语句应该放在while循环里面

把第15行的 '}' 移到第20行的 后面:‘}}’