读书人

刚接触C语言的学生求高人指点下解决

发布时间: 2012-06-01 16:46:36 作者: rapoo

刚接触C语言的学生,求高人指点下
#include <stdio.h>
#include <math.h>
int main()
{
int N,i,j,a[101];
scanf("%d",&N);
for(i=1;i<=N;i++)
a[i]=i;
for(i=2;i<sqrt(N);i++)
for(j=i+1;j<=N;j++)
{if(a[i]!=0&&a[j]!=0)
if(a[j]%a[i]==0)
a[j]=0;}
for(i=2;i<=N;i++)
{if(a[i]!=0)
{printf("%d\n",a[i]);}
}
return 0;
}
用筛法求之N内的素数。
好不容易编出来的程序,运行又可以,明明又对了,就是提交不上去。还有我就是不懂怎么可以学好c语言,有什么方法吗?

[解决办法]
数学思维不太缜密

第一步优化:

C/C++ code
#include <stdio.h>#include <math.h>int main(){    int N,i,j;    scanf("%d",&N);    for(i=2;i<sqrt(N);i++)        for(j=i+1;j<=N;j++)        {            if(i!=0&&j!=0)                if(j%i==0) j=0;        }        for(i=2;i<=N;i++)        {            if(i!=0)            {                printf("%d\n", i);            }        }          return 0;} 

读书人网 >C语言

热点推荐