| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 522 人关注过本帖
标题:一个问题讨论一下
只看楼主 加入收藏
ajuange
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2009-11-18
结帖率:50%
收藏
已结贴  问题点数:16 回复次数:5 
一个问题讨论一下
题目是这样的 :输出1到1000以内的素数。
我写的是这样的但是实现不了  请大家分析一下
#include<stdio.h>
main()
{
    int i,j,max,a;
    for(i=1;i<=1000;i++)
        a=sqrt(i);
            for(j=2;j<=a;j++)
                if(i%j==0)break;
                   if(i>j+1)
                       printf("%d is a prime number\n",i);
                   else
                       printf("%d is not a prime number\n",i);

}
还有这句话 if(i>j+1)
 是起什么作用的我还不知道  我只知道些素数的时候都用这个
搜索更多相关主题的帖子: 水壶 
2009-11-30 23:27
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:3 
没细看,只看出来少了大括号。
2009-11-30 23:35
jcslt
Rank: 8Rank: 8
来 自:90-xx.com
等 级:蝙蝠侠
帖 子:251
专家分:975
注 册:2009-10-10
收藏
得分:3 
改LZ的,2和3没符合第二个for循环,你自己在想想吧
#include"math.h"
void main()
{
    int i,j,a;
    for(i=1;i<=1000;i++)
    { a=(int)sqrt(i);
      for(j=2;j<=a;j++)
      if(i%j==0)
       break;        
      else if(j==a)
       printf("%d is a prime number\n",i);  
    }

}
输出5--1000内的素数!

还是用函数简单多了:
int fun(int n)
{int i;
for(i=2;i<=n/2;i++)
if(n%i==0)return 0;
return 1;
}
void main()
{int n;
for(n=2;n<=1000;n++)
if(fun(n))printf("%d\n",n);
}

[ 本帖最后由 jcslt 于 2009-12-1 09:45 编辑 ]

www.
2009-12-01 08:46
tp312cf7
Rank: 2
等 级:论坛游民
帖 子:5
专家分:14
注 册:2009-11-25
收藏
得分:3 
首先少了#include<math.h>
不是i>j+1而是j>a,意思是循环结束了都找不到i%j==0;
还有for语句的括号少了!
认真点啊

[ 本帖最后由 tp312cf7 于 2009-12-1 09:27 编辑 ]

一个编程爱好者,孤单前行
2009-12-01 09:25
赵俊伟
Rank: 2
来 自:山东济南
等 级:论坛游民
帖 子:16
专家分:17
注 册:2009-10-20
收藏
得分:3 
你自己的程序怎么不知道怎么用呢,给你一个可以看的懂得:
#include<stdio.h>
void main()
{
    int a,b,c;
            for(a=1;a<=1000;a++)
      {
            for(b=2;b<=a;b++)
            {
                c=a%b;
                if(c==0&&b!=a)
                {
                    break;
                }
                if(b==a)
                    printf("%d\n",a);
            }
      }
2009-12-01 09:48
xu362726904
Rank: 6Rank: 6
等 级:侠之大者
帖 子:160
专家分:471
注 册:2009-6-18
收藏
得分:3 
#include<stdio.h>
main()
{
    int i,j,a;
    for(i=1;i<=1000;i++)
       {
        a=sqrt(i);
            for(j=2;j<=a;j++)
                if(i%j==0) {printf("%d is not a prime number\n",i);break;}
                   if(j>a)
                       printf("%d is a prime number\n",i);         
       }

}
照你的改的
2009-12-01 12:14
快速回复:一个问题讨论一下
数据加载中...
 
   



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

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