标题:为什么啊
取消只看楼主
guisu
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2005-1-10
 问题点数:0 回复次数:4 
为什么啊
各位,我有一道题,是求100到200之间的素数,我编写如下,编译时没有错误,可是运行时却把100到200之间所有的数都打印出来了,不知道为什么,请各位帮帮忙啊!
#include<stdio.h>
#include<math.h>
void main()
{
        int i,k,j,m=0;
        for(i=100;i<=200;i++)
        {    k=i;
             for(j=2;j<=sqrt(k);j++)
                  if(k%i==0)
                    break;
                  printf("%d\t",k);
                  m++;
                  if(m%10==0)
                     printf("\n");
        }
}   
搜索更多相关主题的帖子: include void 
2005-01-18 13:21
guisu
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2005-1-10
得分:0 
谢谢啊,但是为什么要加上
if(j+1>sqrt(k))  
这个语句呢

2005-01-18 15:46
guisu
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2005-1-10
得分:0 
另外第二行和第三行出现那么大的空间 是因为最后一个if语句的毛病 因为每一次判断都要输出\n
我也是刚刚发现,不知道对不对啊 呵呵

2005-01-18 15:53
guisu
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2005-1-10
得分:0 
#include<stdio.h>
#include<math.h>
void main()
{
        int i,k,j,m=0;
        for(i=100;i<=200;i++)
        {    k=i;
            for(j=2;j<sqrt(k);j++)
   {
                if(k%j==0)
                break;
   }
           if(j+1>sqrt(k))
     {
             printf("%d  ",k);
                  m++;
     
            if(m%10==0)
              printf("\n");
     }
  }
}   
这样就对了,呵呵

2005-01-18 15:57
guisu
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2005-1-10
得分:0 
但是可以运行啊,哪里错了啊

2005-01-18 20:05



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-11460-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.049158 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved