各位好,我先问以下代码当把下面注释的那行代码int cout=1放到循环体外面的时候为什么程序会出错

#include<stdio.h>
int main()
{
int cnt=0;
int sum=0;
int i;
//int cout=1;
if(i==1)
i=2;
for( i=1;i<=7;i++)
{
int cout=1;
for(int j=2;j<i-1;j++)
{
if(i%j==0)
{
cout=0;
break;
}
}
if(cout==1)
{
cnt++;
sum=sum+i;
}
}
printf("cnt=%d,sum=%d",cnt,sum);
return 0;
}

放在内部,每次循环时count都是从1开始,放外面如果cout为0了,你里面得if以后都不会运行

放在循环体外面,cout是全局变量只初始化一次,后续在改变cout的值时,cout的值改变
放在循环体里面,cout是局部变量,且每一次循环cout都会重新初始化值变为1.
根据你的解题思路,cout在每次循环需要将cout重置为1