为了账号安全,请及时绑定邮箱和手机立即绑定

用数组 ,筛法求素数,输入a和b求a与b之间的素数,我的程序为什么不行!新手求指教,谢谢

用数组 ,筛法求素数,输入a和b求a与b之间的素数,我的程序为什么不行!新手求指教,谢谢

C
qq_LeeMeYang_0 2016-12-03 14:57:15
#include"stdio.h"int main(){ int a,b,i,j,t=0,s1[10000]; scanf("%d%d",&a,&b); for(i=a;i<=b;i++) {        for(j=2;j<i;j++)  if(i%j==0)break;  if(j>i+1) s1[t]=i;t++; }printf("%d",s1[t]);}
查看完整描述

3 回答

已采纳
?
望远

TA贡献1017条经验 获得超1032个赞

if(j==i)//当j==i时才表示是素数。
{
    s1[t]=i;
    t++;//这两条指令必须同时执行,注意if语句作用范围。
 }
printf("%d",s1[t]);//这里输出结果一定是0,数组下标是0.....t-1
可以统计完所有素数后用for循环打印输出
for(i=0;i<t;i++)
{
    printf("%d ",s1[i]);
}


查看完整回答
反对 回复 2016-12-03
  • qq_LeeMeYang_0
    qq_LeeMeYang_0
    谢谢,幸苦了
  • 望远
    望远
    没事,一起学习。
  • qq_LeeMeYang_0
    qq_LeeMeYang_0
    #include"stdio.h" int main() { int a,b,i,j,t=0,s1[1000]; scanf("%d %d",&a,&b); for(i=a;i<b;i++); { for(j=2;j<i;j++) if(i%j==0)break; if(j==i) { s1[t]=i; t++; } } for(i=0;i<t;i++) {printf("%d ",s1[i]); } }为什么输出没结果 ,c语言学的头大
点击展开后面4
?
慕瓜4807886

TA贡献25条经验 获得超9个赞

最后的条件应该是j+1==i,这个时候才能判断从2到i-1没有一个能被i整除

查看完整回答
1 反对 回复 2016-12-03
  • 3 回答
  • 0 关注
  • 1864 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信