当前位置: 代码迷 >> C语言 >> [原创] 循环嵌套
  详细解决方案

[原创] 循环嵌套

热度:146   发布时间:2006-03-15 17:38:00.0
我的方法:)
main()
{
int m,k,temp;
int i,j,flag;
flag=0;
system("cls");
scanf("%d,%d",&m,&k);
temp=m+k;
for(i=m;i<=temp;i++)
{
for(j=2;j<=i/2;j++)
{
if(i%j==0){flag=1;break;}
}
if(flag==0)printf(" %d",i);
else flag=0;
}
}
----------------解决方案--------------------------------------------------------
呵呵!!
顶顶!!
就快三级网络了!!
来这里看看.........
----------------解决方案--------------------------------------------------------

上面的错了呵呵,马上写个改进的
main()
{
int m,k,l,xx[200];//l用来记录素数的个数
int j,flag,enough;//flag标记时素数,enough标记所求素数已经满了
flag=0;l=0;enough=0;
system("cls");
scanf("%d,%d",&m,&k);
while(enough==0)
{
for(j=2;j<=m/2;j++)
{
if(m%j==0){flag=1;break;}
}
if(flag==0){xx[l]=m;l++;}
else flag=0;
if(l==k)enough=1;
m++;
}
for(j=0;j<l;j++)
{
printf(" %d ",xx[j]);
}
}


----------------解决方案--------------------------------------------------------
以下是引用a402730324在2006-3-14 22:15:00的发言:
其实我觉得还有一个错误
就是for引导的是一个复合语句(在这个函数里面)所以应该再加一个大括号在for的后面。
然后就是我看这个函数是一定要有一个返回植的,所以应该再加一个return语句

for 后面没必要加大括号...return有必要!


----------------解决方案--------------------------------------------------------

代码风格不好啊

将大于整数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++;
}
}


----------------解决方案--------------------------------------------------------

我觉得七楼的说得很到位。
它使用来判断程序的流程的。
个人见解。多多指教!


----------------解决方案--------------------------------------------------------

那个弄成==也是行的,主要是做条件筛选前面一个只堵了一个入口,还有一个入口没堵住.


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