问答详情
源自:6-2 数组的遍历

关于定义数组的问题?


#include <stdio.h>

int main()

{

int a = 1, t = 2, sb;

while (a < 100)

{

int arr1[100];

a++;

t = 2;

while (t < a)

{

sb = a % t;

  if (sb == 0)

{

arr1[t] = a;

for (int i = 0; i < 100; i++)

{

if (arr1[i] == arr1[t])

{

continue;

}

}

}

t++;

}

}

for (int i = 0;i<100;i++)

{

printf("合数为%d", arr1[i]);

return 0;

}

此时显示https://img3.mukewang.com/5ba6451c000157f803590066.jpg未定义标识符  为什么啊?


然而将

#include <stdio.h>

int main()

{

int a = 1, t = 2, sb;

while (a < 100)

{

int arr1[100];

/*a++;

t = 2;

while (t < a)

{

sb = a % t;

  if (sb == 0)

{

arr1[t] = a;

for (int i = 0; i < 100; i++)

{

if (arr1[i] == arr1[t])

{

continue;

}

}

}

t++;

}

} */

for (int i = 0;i<100;i++)

{

printf("合数为%d", arr1[i]);

return 0;

}

中间一部分代码注释掉之后 就不再有错误提示了?

请大神帮我解答一下 谢谢!

提问者:鸭蛇 2018-09-22 21:37

个回答

  • 慕哥1206660
    2018-09-30 08:57:59

    int arr1[100]; 定义的是while循环体的局部变量,作用于仅限于while循环