大家看看这段程序为什么不能运行
#include "stdio.h "
int main()
{
int a=1,b,c[1000],i=1;
while(a <10000)
{
for(b=0;b <=a/2;b++)
if(a/b=0)
a+=2;
else
c[i]=a;
}
c[0]=i;
for(i=1;1 <=c[0];i++)
printf( "gong you %d ge su shu\n ",c[0]);
printf( "they are:\n%6d\n ",c[i]);
return 0;
}
在dev-c++里可以通过编译,但是运行什么也不显示,请高手指点
[解决办法]
1 if(a/b = 0)应该为if(a/b == 0)
2 a/b 当b = 0 不能运行
3 for(i=1;1 <=c[0];i++)
printf( "gong you %d ge su shu\n ",c[0]);
printf( "they are:\n%6d\n ",c[i]);
改成:
for(i=1;1 <=c[0];i++)
{
printf( "gong you %d ge su shu\n ",c[0]);
printf( "they are:\n%6d\n ",c[i]);
}
[解决办法]
把if(a/b==0)改成if(a%b==0)试试(如果你的目的是求素数个数的话),并且应该在while循环中加入i++语句,否则不会得到正确答案
#include <stdio.h>
void main()
{
int a,i=0,b,c=0;
for(a=2;a <10000;a++) /* a应该从2开始因为1不是素数 */
{
for(b=2,c=0;b <=a/2;b++)
{
if(a%b==0)
{
c=1;continue;
}
}
if(c==0)
i++;
}
printf( "共有%d个素数 ",i);
}