编程求数字,结果与预期不符

逻辑好像正确了,找不出问题所在(超入门级)
题目

img


一开始的程序与结果:

img

img


后来结果不符合预期,尝试换用 if 语句:

img

img

可以利用嵌套循环枚举来判断求和,代码修改如下试试:

#include <stdio.h>

int main()
{
    int a, b, c, d, cd, bcd,abcd;
     for (c = 1; c <= 9; c++) {
        for(d = 0; d <= 9; d++) {
            if (c == d) continue;
            cd = c * 10 + d;
            for(b = 1; b <= 9; b++) {
                if (b == c || b == d) continue;
                for (a = 0; a <= 9; a++) {
                    if (a == b || a == c || a == d) continue;
                    bcd = b * 100 + cd;
                    abcd = a * 1000 + bcd;
                    if (cd + bcd + abcd == 2022) {
                        printf("a = %d, b = %d, c = %d, d = %d\n", a, b, c, d);
                    }
                }
            }
        }
    }
    
    return 0;
}

结果如图:

img