为什么这个程序没有输出?(语言-c++)

简单的大一题目
为什么我写的这个没有输出?
(唯唯诺诺)

img

img

#include 
using namespace std;

int main() {
    int y;
    int m = 0;
    int n;
    cin >> y;
    cin >> n;
    int num = y;
    int temp;
    int a[9] = {0};
    for (int v = 0; v <= 3000 - y; v++) {
        for (int i = 0; i < 4; i++) {
            temp = num % 10;
            num = num / 10;
            a[temp] = 1;//想要去重
        }
        for (int z : a) {
            if (z = 1)
                m++;
        }
        if (m == n) {
            cout << v << " ";
            v = 3001;
        } else {
            num = y + v + 1;
        }
    }


    return 0;
}

我又来了QAQ

28行if (z = 1)缺个=

#include <iomanip>
#include <iostream>
using namespace std;

int main()
{
    int y = 1988;
    int m = 0;
    int n = 4;
    int age = 0; //输出年龄
    cin >> y >> n;
    int num = y;
    int temp;
    // int a[9] = {0};
    //  for (int v = 0; v <= 3000 - y; v++)
    for (int v = y; v <= 3000; v++, age++) //从出生年开始算
    {
        int a[10] = {0}; //每次循环前先置零,10个数字
        num = v;
        int c = 0; //记录数字长度
        // for (int i = 0; i < 4; i++)
        while (num)
        {
            temp = num % 10;
            num = num / 10;
            // a[temp] = 1; //想要去重
            a[temp]++;
            c++;
        }
        if (c < n)
            a[0] = n - c; //前置0的数量

        m = 0; //每年重置
        for (int z : a)
        {
            if (z == 1)
                m++;
        }
        if (m == n)
        {
            // cout << v << " ";
            //  v = 3001;
            cout << age << " " << setw(4) << setfill('0') << v << endl;
            break;
        }
        // else
        // {
        //     num = y + v + 1;
        // }
    }

    return 0;
}