关于#c语言#的问题:为什么运行起来输出的值是0

为什么运行起来输出的值是0?

取1元、2元和5元的纸币共10张,现要支付15元。编写程序输出所有的付法。针对每一种付法,输出各种面额的纸币数量。要求将1元、2元和5元设置在最合理的取值范围内。
提示:利用穷举的法来求解该问题。
#include <stdio.h>

int main() {
    int x, y = 0, i, j, k, a, b, z;
    scanf("%d", &x);
    for (i = 0; i <= 10; i++) {
        for (j = 0; j <= 10; j++)
            a = j * 2;
        {
            for (k = 0; k <= 10; k++) {
                b = k * 5;
                if ( i + a + b == x && i + j + b == 10) {
                    printf("fen1:%d张 fen2:%d张 fen3:%d张\n", i, j, k);
                    y++;
                }
            }
        }
        printf("Count=%d(%d元有%d种支付方式)", y, x, y);
        return 0;
    }

}
    }

}

已回答,莫辜负
————————————————————————————————————————

  1. 大括号不配对:在第6行和第12行之间,大括号没有配对。这会导致编译错误。
  2. 输出错误:在第20行,缺少一个大括号,导致“Count”只会输出一次。

改了一下:

#include <stdio.h>

int main() {
    int x, y = 0, i, j, k, a, b, z;
    scanf("%d", &x);
    for (i = 0; i <= 10; i++) {
        for (j = 0; j <= 10; j++) {
            a = j * 2;
            for (k = 0; k <= 10; k++) {
                b = k * 5;
                if (i + a + b == x && i + j + k == 10) {
                    printf("fen1:%d张 fen2:%d张 fen3:%d张\n", i, j, k);
                    y++;
                }
            }
        }
    }
    printf("Count=%d(%d元有%d种支付方式)", y, x, y);
    return 0;
}

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^