c语言变量声明问题

#include <stdio.h>
int main()
{ int cnt=0,x=2;
int i;
int sushu=1; //在这里加这段定义和在下面加这段定义的区别,运行了 结果是不一样的额,为什么啊?
while(cnt<50)
{ int sushu=1;
for(i=2;i<x;i++)
{ if(x%i==0)
{sushu=0;}
}
if(sushu==1)
{printf("%d\n",x);
cnt++; }
x++; }
return 0; }

在while循环外定义,变量只会在进入循环前初始化为1;在while循环中定义,每次循环都会初始化为1.
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-03-11
#include <stdio.h>
int main()
{
int cnt=0,x=2;
int i;
int sushu=1; //在这里加这段定义和在下面加这段定义的区别,运行了 结果是不一样的额,为什么啊?
while(cnt<50)
{
int sushu=1; ///c此ushu不是前面的素数,而是另外一不同个变量
for(i=2;i<x;i++)
{
if(x%i==0)
{
sushu=0;
}
}
if(sushu==1) //这个sushu是你在while循环之外定义的变量,也就是前面定义的那个
{printf("%d\n",x);
cnt++; }
x++; }
return 0; }
相似回答