| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 10626 人关注过本帖
标题:输出100以内素数的问题
只看楼主 加入收藏
竺洪平
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2012-7-21
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:8 
输出100以内素数的问题

#include "stdio.h"
main()
{
    int i,n;
    for (n=2;n<=100;n++)
    {
        for (i=2;n%i;i=i++)
            ;
            if (i==n)
                printf("  %d",i);
    }
    putchar('d\n');
}
这是书上的程序,已编译与运行,正确,可是,上面的 putchar('d\n');中为什么要加d?
搜索更多相关主题的帖子: include 
2012-07-28 12:55
yuma
Rank: 12Rank: 12Rank: 12
来 自:银河系
等 级:贵宾
威 望:37
帖 子:1934
专家分:3012
注 册:2009-12-22
收藏
得分:2 
那个d是冗余代码,没有用的,你换成a或者b或者c……应该都能编译通过。

心生万象,万象皆程序!
本人计算机知识网:http://bbs.为防伸手党,本站已停止会员注册。
2012-07-28 13:00
我乃新手
Rank: 2
等 级:论坛游民
帖 子:52
专家分:73
注 册:2012-7-23
收藏
得分:2 
无效字符
2012-07-28 13:17
竺洪平
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2012-7-21
收藏
得分:0 
这个程序对像我这样的初学者,要看懂还有几个问题:
拿来判别的数是n,i只是作为除数,结果应该输出的是n,为什么是:printf("  %d",i);
2012-07-28 13:32
竺洪平
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2012-7-21
收藏
得分:0 
这个程序对像我这样的初学者,要看懂还有几个问题:
2,putchar('d\n');没有显示出"d",它只是起到换行的作用,为什么"d"就不显示了?为什么它是"冗余"了?
  如果改为:putchar('d');则显示出"d",当然就没有换行了
2012-07-28 13:38
LShang
Rank: 4
来 自:China
等 级:业余侠客
威 望:3
帖 子:183
专家分:258
注 册:2010-12-24
收藏
得分:2 
以下是引用竺洪平在2012-7-28 13:32:19的发言:

这个程序对像我这样的初学者,要看懂还有几个问题:
拿来判别的数是n,i只是作为除数,结果应该输出的是n,为什么是:printf("  %d",i);

i和n相等时候才输出,打印哪个结果都是一样的
不过如果打印n的话逻辑上更顺一些

学如逆水行舟,不进则退
士不可以不弘毅,任重而道远
2012-07-28 13:41
竺洪平
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2012-7-21
收藏
得分:0 
谢谢楼上各位,终于明白了
2012-07-28 14:08
小糊涂神c30
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:198
专家分:809
注 册:2012-4-25
收藏
得分:0 
程序代码:
#include<stdio.h>
#include<math.h>
#define MAX 100
#define MIN 1
int main(int argc,char *argv[])
{
    int i=0;
    int j=0;
    int count=0;
    printf("%d-%d内的所有素数是:\n",MIN,MAX);
    for(i=MIN;i<MAX;++i)
    {
        if(i==1)
            continue;
        for(j=2;j<=(int)sqrt(i);++j)   
        {
            if(i%j==0)
                break;   
        }
        if(j>(int)sqrt(i))
            {
                printf("%d\t",i);
                count++;
                if(count%8==0)
                    printf("\n");
            }
    }
    return 0;
}
这是我个人写的,楼主可以参考一下!
2012-07-28 20:55
hazs
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2016-4-24
收藏
得分:0 
#include <stdio.h>
 
int main ()
{
   int i, j;
   for(i=2; i<100; i++) {
      for(j=2; j <= i-1; j++)
        if(!(i%j)) break; // 如果找到,则不是质数
      if(j > i-1) printf("%d 是质数\n", i);
   }
}
2016-05-04 11:02
快速回复:输出100以内素数的问题
数据加载中...
 
   



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

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