| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5210 人关注过本帖
标题:将100-200之间的素数输出 什么地方错了????
只看楼主 加入收藏
fz19910125
Rank: 2
来 自:上海
等 级:论坛游民
帖 子:52
专家分:11
注 册:2010-10-12
结帖率:84.62%
收藏
已结贴  问题点数:20 回复次数:19 
将100-200之间的素数输出 什么地方错了????
#include "stdio.h"
void main()
{
    int a;
    for(a=100;a<=200;a++)
    {
        int i;
        for(i=2;i<a;i++)
        if(a%i==0)
        {
            break;
        }
         printf("%d\n",a);
    }  
 }

运行结果:输出100—200
搜索更多相关主题的帖子: 素数 输出 
2010-10-20 19:05
m21wo
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:4
帖 子:440
专家分:1905
注 册:2010-9-23
收藏
得分:1 
程序代码:
#include <stdio.h>
void main()
{
    int a;
    for(a=100;a<=200;a++)
    {
        int i,flag=1;
        for(i=2;i<a;i++)
            if(a%i==0)
            {
                flag=0;
                break;
            }
            if(flag)
                printf("%d\n",a);
    } 
}

If You Want Something, Go Get It, Period.
2010-10-20 19:11
fz19910125
Rank: 2
来 自:上海
等 级:论坛游民
帖 子:52
专家分:11
注 册:2010-10-12
收藏
得分:0 
#include <stdio.h>
void main()
{
    int a;
    for(a=100;a<=200;a++)
    {
        int i,flag=1;
        for(i=2;i<a;i++)
            if(a%i==0)
            {
                flag=0;
                break;
            }
            if(flag)
                printf("%d\n",a);
    }
}
能帮我注释一下吗?谢谢
2010-10-20 19:45
fz19910125
Rank: 2
来 自:上海
等 级:论坛游民
帖 子:52
专家分:11
注 册:2010-10-12
收藏
得分:0 
#include "stdio.h"
void main()
{
    int a;
    for(a=100;a<=200;a++)
    {
        int i;
        for(i=2;i<a;i++)
        if(a%i==0)
        {
            break;
        }
         printf("%d\n",a);
    }  
}

我的这个程序什么地方出了错?
2010-10-20 19:46
m21wo
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:4
帖 子:440
专家分:1905
注 册:2010-9-23
收藏
得分:0 
break 只能退出一重循环啊!譬如102 你虽然经过for 循环条跳出这次循环,但a的值没改变,接着你就把这个值给输出了,所以根本就没有一个标志,判断是否进入if语句,故我加了标记符flag,如果它改变了就说明a就入了if语句,就说明不是素数,就不能输出!反之就能输出

If You Want Something, Go Get It, Period.
2010-10-20 19:55
fz19910125
Rank: 2
来 自:上海
等 级:论坛游民
帖 子:52
专家分:11
注 册:2010-10-12
收藏
得分:0 
if(flag)是什么意思?
2010-10-20 20:02
煎熬
Rank: 2
等 级:论坛游民
帖 子:2
专家分:14
注 册:2010-10-20
收藏
得分:1 
回复 6楼 fz19910125
if(flag)和if(flag!=0)的意思是一样的 当flag不等于0是就执行下面的语句
2010-10-20 20:51
五当家
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:2
帖 子:1112
专家分:3674
注 册:2010-10-20
收藏
得分:1 
#include<stdio.h>
#include<math.h>
void main()
{
    int m,k,i,n=0;
    for(m=101;m<=200;m=m+2)
    {
        k=sqrt(m);
        for(i=2;i<=k;i++)
            if(m%i==0)
                break;
                if(i>=k+1)
                {
                    printf("%d\t",m);
                    n=n+1;
                }
                if(n%10==0)
                    printf("\n");
    }
printf("\n");
}

经验积累中............
2010-10-20 21:22
jack10141
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:陕西西安
等 级:小飞侠
威 望:6
帖 子:706
专家分:2271
注 册:2010-8-10
收藏
得分:1 
程序代码:
#include "stdio.h"
void main()
{
    int a;
    for(a=100;a<=200;a++)
    {
        int i;
        for(i=2;i<a;i++)
        if(a%i==0)
        {
            goto loop;
        }
         printf("%d\n",a);
loop:   ;
    } 
}
楼主可以这样改啊!!

Coding就像一盒巧克力,你永远不会知道你会遇到什么BUG
别跟我说你是不能的,这让我愤怒,因为这侮辱了你的智慧
2010-10-20 21:48
仙度瑞城
Rank: 2
等 级:论坛游民
帖 子:3
专家分:16
注 册:2010-6-2
收藏
得分:1 
回复 2楼 m21wo
偶数肯定不是素数,所以外层那个for循环的递增量不是1而是2
2010-10-20 21:48
快速回复:将100-200之间的素数输出 什么地方错了????
数据加载中...
 
   



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

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