这里是先输入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;
}