首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2012-06-01 
刚接触C语言的学生,求高人指点下#include stdio.h#include math.hint main(){int N,i,j,a[101]scanf(

刚接触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;} 

热点排行