当前位置: 代码迷 >> C语言 >> 求助..没弄明白
  详细解决方案

求助..没弄明白

热度:326   发布时间:2006-08-23 23:56:07.0
求助..没弄明白

for(b=2;b<a;b++)
{
for(i=2;i<a;i++)
if(b%i==0)break ;
else
b[j]=b;
j++;

}
为什么输出b[]是a以内的奇数而不是素数?


----------------解决方案--------------------------------------------------------
以下是引用C之Itachi在2006-8-23 23:56:07的发言:

for(b=2;b<a;b++)
{
for(i=2;i<a;i++)
if(b%i==0)break ;
else
b[j]=b;
j++;

}
为什么输出b[]是a以内的奇数而不是素数?

这段代码也能编译通过??


----------------解决方案--------------------------------------------------------
以下是引用C之Itachi在2006-8-23 23:56:07的发言:

for(b=2;b<a;b++)
{
for(i=2;i<a;i++)
if(b%i==0)break ;
else
b[j]=b;
j++;

}
为什么输出b[]是a以内的奇数而不是素数?

没看懂你的b到底是什么东西
----------------解决方案--------------------------------------------------------

提示: 作者被禁止或删除 内容自动屏蔽

2006-08-23 18:01:24
C之Itachi

等 级:新手上路
帖 子:111
专家分:0
注 册:2006-7-16
  得分:0 
不好意思,刚才改了下...我是问为什么if(b%i==0)break;
else c[j]=b;
j++;不行.

#include<stdio.h>
int main()
{
int a,b,i,m,k ;
int j=0;
int c[10];
printf("please input a number: \n");
scanf("%d",&a);
for(b=2;b<a;b++)
{
for(i=2;i<a;i++)
if(b%i==0)break ;
if(i>=b)
{
c[j]=b ;
j++;
}
}
for(k=1;k<j;k++)
printf("%d\n",c[k]);
}
----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽

2006-08-24 00:59:23
heamer_c

等 级:新手上路
帖 子:92
专家分:0
注 册:2006-7-18
  得分:0 
你的题目不全,谁也无法判断,j和a有是什么呢?!
----------------解决方案--------------------------------------------------------
同学
你还是先拿本谭浩强的C语言看看先

----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽

2006-08-24 03:06:52
ww84020209

等 级:新手上路
帖 子:190
专家分:0
注 册:2006-8-21
  得分:0 
以下是引用C之Itachi在2006-8-23 23:56:07的发言:

for(b=2;b<a;b++)
{
for(i=2;i<a;i++)
if(b%i==0)break ;
else
b[j]=b;
j++;

}
为什么输出b[]是a以内的奇数而不是素数?

你是不是要求a以内的素数啊?
因为当b为奇数时,第一次执行if语句为if(b%2==0)条件不成立,所以执行else的内容。
改正方法:把else去掉。

[此贴子已经被作者于2006-8-24 14:00:50编辑过]


----------------解决方案--------------------------------------------------------
  相关解决方案