标题:求100~200间的全部素数,已编,求大神帮忙改下错误,感谢!
只看楼主
cairunbo
Rank: 1
来 自:浙江
等 级:新手上路
帖 子:11
专家分:0
注 册:2016-3-7
结帖率:66.67%
已结贴  问题点数:20 回复次数:8 
求100~200间的全部素数,已编,求大神帮忙改下错误,感谢!
问题描述:小弟刚开始学C语言,碰到题目,画出流程图,但是不知为什么就是无法出结果,求大神帮忙指点!
这是我写的代码:
#include<stdio.h>
#include<math.h>
int main()
{
    int n,i,m;
    m=0;
    for(n=100;n<=200;)
    {
        for(i=2;i<=n-1;i++)
        {if((n%i)==0) break;}
        if(i=n)
        {
            printf("%d  ",n);
            m++;
            if(m%10==0)printf("\n");
        }
        n=n+1;
    }
    return(0);
}
为什么程序输出了100到200间的每一个数字?
搜索更多相关主题的帖子: include 流程图 C语言 
2016-03-07 17:02
cairunbo
Rank: 1
来 自:浙江
等 级:新手上路
帖 子:11
专家分:0
注 册:2016-3-7
得分:0 
回复 楼主 cairunbo
这是小弟画的流程图,请大神帮看看啥地方错了

Fighting!
2016-03-07 17:03
grmmylbs
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:54
帖 子:1409
专家分:5845
注 册:2016-2-14
得分:10 
这里写错了  if(i=n)    应该是
if (i == n)
这个错很容易犯,要注意。
2016-03-07 17:07
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
得分:10 
if(i==n),另外可以优化下。
程序代码:
#include<stdio.h>

int main()
{
    int n,i,m;

    m=0;

    for(n=100;n<=200;n++)
    {
        for(i=2;i<=n/2;i++)
        {
            if((n%i)==0) break;
        }

        if(i==(n/2+1))
        {
            printf("%d  ",n);

            m++;
            if(m%10==0)  printf("\n");
        }
    }

    return(0);
}


[此贴子已经被作者于2016-3-7 17:15编辑过]


   唯实惟新 至诚致志
2016-03-07 17:10
cairunbo
Rank: 1
来 自:浙江
等 级:新手上路
帖 子:11
专家分:0
注 册:2016-3-7
得分:0 
回复 3楼 grmmylbs
好的!!感谢你朋友!

Fighting!
2016-03-08 09:58
cairunbo
Rank: 1
来 自:浙江
等 级:新手上路
帖 子:11
专家分:0
注 册:2016-3-7
得分:0 
回复 4楼 qq1023569223
朋友,这个优化是减少循环次数是吗?

Fighting!
2016-03-08 10:00
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
得分:0 
回复 6楼 cairunbo
恩,是的。

   唯实惟新 至诚致志
2016-03-08 10:22
cairunbo
Rank: 1
来 自:浙江
等 级:新手上路
帖 子:11
专家分:0
注 册:2016-3-7
得分:0 
回复 7楼 qq1023569223
Thank you!

Fighting!
2016-03-14 17:15
小小伞
Rank: 2
等 级:论坛游民
威 望:1
帖 子:8
专家分:10
注 册:2016-3-16
得分:0 
#include<stdio.h>
int main()
{
int n,i,m=0,a,b;
printf("number to a~b:");
scanf("%d %d",&a,&b);
for(n=a;n<=b;n++)
{
for(i=2;i<=n/2;i++)
{
if((n%i)==0) break;
}
if(i==(n/2+1))
{
printf("%d  ",n);
m++;
if(m%10==0)  printf("\n");
}
}
getch();
}
2016-03-16 20:39



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




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

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