深度优先,使用1-9组成三个三位数x,y,z,使x+y=z

先上代码

#include <stdio.h>

int nums[10];
int i, j;
//第一个数,第二个数,第几步
void func(int x, int y, int index) 
{
    if (index == 6)//判断z三位数是否被标记过
    {
        int z = x + y;
        int a = z % 10;
        int b = (int)(z / 100);
        int c = (int)(z / 10) % 10;
        if (z > 999 || nums[a] == 1 || nums[b] == 1 || nums[c] == 1)
            return;
        else
        {
            printf("%d + %d = %d\n", x, y, x + y);
            return;
        }
    }
    else if (index < 3)//第一个数
    {
        for (i = 1; i < 10; i++)
            if (nums[i] != 1)
            {
                nums[i] = 1;
                func(x * 10 + i, y, index + 1);
                nums[i] = 0;
            }
    }
    else if (index < 6)//第二个数
    {
        for (j = 1; j < 10; j++)
            if (nums[j] != 1)
            {
                nums[j] = 1;
                func(x, y * 10 + j, index + 1);
                nums[j] = 0;
            }
    }
}

int main(void) 
{
    func(0, 0, 0);
    return 0;
}

编译能通过,但是没有输出,请教哪里出了问题