为了账号安全,请及时绑定邮箱和手机立即绑定

关于定义数组的问题?


#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://img1.sycdn.imooc.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;

}

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

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

正在回答

1 回答

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

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       924439    人
  • 解答问题       20756    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

关于定义数组的问题?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信