标题:[原创] 循环嵌套
只看楼主
redalert
Rank: 1
等 级:新手上路
帖 子:103
专家分:0
注 册:2005-2-4
 问题点数:0 回复次数:16 
[原创] 循环嵌套

将大于整数m且紧靠m的k个素数存入数组xx
void num(int m, int k, int xx[])
{int data=m+1;
int half;
int n=0;
int I;
while(1)
{ half=data/2;
for(I=2;I<=half;I++)
if(data%I==0)
break;
if(I>half) 这里是什么意思呢?前面不是已经规定 I<=half 了么?
{xx[n]=data;
n++;}
if(n>=k)
break;
data++;
}
}

搜索更多相关主题的帖子: 嵌套 素数 int data 
2006-03-14 14:37
ヤ順祺冄繎ヤ
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:3032
专家分:0
注 册:2005-11-9
得分:0 
以下是引用redalert在2006-3-14 14:37:00的发言:

将大于整数m且紧靠m的k个素数存入数组xx
void num(int m, int k, int xx[])
{int data=m+1;
int half;
int n=0;
int I;
while(1)
{ half=data/2;
for(I=2;I<=half;I++)
if(data%I==0)
break;
if(I>half) 这里是什么意思呢?前面不是已经规定 I<=half 了么?
{xx[n]=data;
n++;}
if(n>=k)
break;
data++;
}
}


我也没看懂是什么意思,但是好像永远也不会执行到if里面的语句啊!
是不是程序有误?

2006-03-14 14:47
redalert
Rank: 1
等 级:新手上路
帖 子:103
专家分:0
注 册:2005-2-4
得分:0 
我不知道这道题解是什么意思。其实里面有好几个语句我都不明白。
它里面用了一个while(1)我实在不明白他是要干什么。

能学多少是多少,不学是傻瓜!
2006-03-14 14:53
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
得分:0 
以下是引用redalert在2006-3-14 14:37:00的发言:

将大于整数m且紧靠m的k个素数存入数组xx
void num(int m, int k, int xx[])
{int data=m+1;
int half;
int n=0;
int I;

half=data/2;// while 是每用的//
for(I=2;I<=half;I++)
if(data%I==0) break;

if(I>half) //这是从上面的I++过来的.如果I>HALF 那么 代表I没有被任何数整除//
{xx[n]=data;
n++;}
if(n>=k)
break;
data++;
}
}


[此贴子已经被作者于2006-3-14 15:07:25编辑过]


[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-03-14 15:06
ヤ順祺冄繎ヤ
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:3032
专家分:0
注 册:2005-11-9
得分:0 
楼上说得对!
刚才没注意看呢..
2006-03-14 15:10
redalert
Rank: 1
等 级:新手上路
帖 子:103
专家分:0
注 册:2005-2-4
得分:0 
谢谢啦,我终于看明白了。我个人认为,其实那个 if(I&gt;half)这个条件好象仅仅就是要引出下面的赋值。

能学多少是多少,不学是傻瓜!
2006-03-14 15:29
cordier
Rank: 2
等 级:论坛游民
威 望:1
帖 子:449
专家分:14
注 册:2006-2-9
得分:0 
判断程序的流程。
是break出来的,还是从for里面跳出的。

2006-03-14 19:14
a402730324
Rank: 5Rank: 5
等 级:贵宾
威 望:18
帖 子:1233
专家分:0
注 册:2005-12-1
得分:0 
其实我觉得还有一个错误
就是for引导的是一个复合语句(在这个函数里面)所以应该再加一个大括号在for的后面。
然后就是我看这个函数是一定要有一个返回植的,所以应该再加一个return语句

敢犯强汉者,虽远必诛!——陈汤 不知吾辈何时方能吐出此豪言壮语?
2006-03-14 22:15
仁者无敌
Rank: 1
等 级:新手上路
帖 子:199
专家分:0
注 册:2006-3-5
得分:0 
FOR下面的内容可能是只包括if(data%I==0)吧

I am a programmer !
2006-03-15 06:50
xiaoppi
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2006-2-22
得分:0 

将大于整数m且紧靠m的k个素数存入数组xx
void num(int m, int k, int xx[])
{int data=m+1;
int half;
int n=0;
int I;
while(1) ----------------------> 这里WHILE多余,不管怎么样都进入循环
{ half=data/2;
for(I=2;I<=half;I++) /*for循环用来判断一个数是不是素数,是就退出while循环*/
if(data%I==0)
break;
if(I>half) /*不管data是不是素数I进行拉I++,这个if语句用来接受一个数
{xx[n]=data; 是不是素数,如果I>half,那么就是*/
n++;}
if(n>=k)
break;
data++;
}
}


2006-03-15 07:37



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




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

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