使用了未初始化的内存m;使用了未初始化的变量m?

这里是先输入n个不同的数字,然后给定x ,输出x所在的下标。但是测试的时候,报错:使用了未初始化的内存m;使用了未初始化的变量m,请问为什么会这样?

#include<cstdio>
const int maxn = 210;
int list[maxn];

int main() {
    int n,x;
    scanf_s("%d", &n);
    for (int i = 0; i < n; i++)
        scanf_s("%d", &list[i]);
    scanf_s("%d", &x);
    
    int m;
    for (int m = 0; m < n; m++) {
        if (list[m] == x)
            printf("%d\n", m);
            break;

    }
    printf("%d", m);

    if (m == n) {
        printf("-1");
    }

    return 0;
}
#include<cstdio>
const int maxn = 210;
int list[maxn];
int main() {
    int n,x;
    scanf_s("%d", &n);
    for (int i = 0; i < n; i++)
        scanf_s("%d", &list[i]);
    scanf_s("%d", &x);
    int m; //作用域在main{},没有初始化 
    for (int m = 0; m < n; m++) {  //重新定义了m,作用域在for{}
        if (list[m] == x)
{//
            printf("%d\n", m);
            break;
}//
    }
    printf("%d", m);//之后的m都是main的m,没有初始化的
    if (m == n) {
        printf("-1");
    }
    return 0;
}