c语言输入两个正整数m和n,求出[m,n]区间的所有素数

#include<stdio.h>intmain(){intm,n,i,j,a[100],x=0;scanf("%d%d",&m,&n);for(i=m;i<=n;i++... #include <stdio.h>
int main ()
{
int m,n,i,j,a[100],x=0;
scanf("%d%d",&m,&n);
for(i=m;i<=n;i++)
{
for(j=2;j<=i;j++)
{
if(i%j==0)
break;
}
if(j==i)
{
a[x]=i;
x++;
}
}
for(i=0;i<=x;i++)
{
printf("%d",a[i]);
}
}
帮我看看这个程序哪里有问题吧。。。谢谢
展开
 我来答
wuchenyong119
推荐于2017-11-25 · TA获得超过265个赞
知道小有建树答主
回答量:194
采纳率:0%
帮助的人:169万
展开全部
for(j=2;j<=i;j++)
{
if(i%j==0)
break;
}
if(j==i)
{
a[x]=i;
x++;
}

这段代码,你不感觉无论是哪一个数,都会被记录下来,最后输出吗?
后面改成if(j!=i)//保证不是因为除以自身而跳出上面寻个循环的
{
a[x]=i;
x++;
}
靓丽还清湛的标兵5177
2013-02-20 · TA获得超过1649个赞
知道小有建树答主
回答量:1032
采纳率:100%
帮助的人:987万
展开全部
除了1和自身之外没有其它正整数因子的正整数称为素数,也就是不用试1和自身
for(j=2; j<=i; j++)改为 for(j=2; j<i; j++) 就可以了,
如果数很大这样还是比较低效的,最多试到i的平方根即可
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
半招赴会60k9
2013-02-20
知道答主
回答量:16
采纳率:0%
帮助的人:11.6万
展开全部
最后的输出循环有点问题
for (int i = 0; i < x; i++)
printf("%d", a[i]);
因为你上边已经x++,你如果判断条件里写成 for (int i = 0; i <= x; i ++)
程序是要崩的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
feifly0918
2013-02-20 · TA获得超过318个赞
知道答主
回答量:186
采纳率:0%
帮助的人:158万
展开全部
for(j=2;j<=i;j++) 改成 for(j=2;j<i;j++)

不然for(j=2;j<=i;j++)结束j = i+1;永远满足不了后面的if(j == i)也就是无论你怎么输入,都不会数据出来!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我艹恰好七个字
2013-02-20
知道答主
回答量:1
采纳率:0%
帮助的人:1530
展开全部
把for(i=0;i<=x;i++)改为for(i=0;i<x;i++)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式