当前位置: 代码迷 >> C语言 >> 新人关于while和for循环同时出现在函数中的一个简单问题。
  详细解决方案

新人关于while和for循环同时出现在函数中的一个简单问题。

热度:96   发布时间:2008-03-08 20:37:12.0
新人关于while和for循环同时出现在函数中的一个简单问题。
下面函数fun()主要是求大于m且仅靠m的k个非负数存入数组xx[]
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
void fun(int m,int k,int xx[])
{
int i,j=0;
while(j<k)
{
  m++;
for(i=2;i<m;i++)
  if(m%i==0)
   {
    xx[j++]=m;
    break;
   }
}
}
void main()
{
int m,n,zz[1000];
printf("\nPlease enter two intergers:");
scanf("%d%d",&m,&n);
fun(m,n,zz);
for(m=0;m<n;m++)
  printf("%d",zz[m]);
printf("\n");
}
此程序本身编译没错误,但是运行不出来结果,问题出现在fun()循环内,请指点!最好详细点。
搜索更多相关的解决方案: 函数  简单问题  新人  

----------------解决方案--------------------------------------------------------
while(j<k)
{
  m++;
for(i=2;i<m;i++)
  if(m%i==0)
   {
    xx[j++]=m;
    break;
   }
我没看懂,M++和BREAK是什么意思?
----------------解决方案--------------------------------------------------------
/*不知是不是你的原义*/
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
void fun(int m,int k,int xx[])
{
int i,j=0;
while(j<k)
{
  m++;
for(i=2;i<m;i++)
  if(m%i>=0) /* 等于0 偶数跳过*/
   {
    xx[j++]=m;
    break;
   }
}
}
void main()
{
int m,n,zz[1000];
printf("\nPlease enter two intergers:");
scanf("%d%d",&m,&n);
fun(m,n,zz);
for(m=0;m<n;m++)
  printf("%d ",zz[m]);
printf("\n");
}
/* 输入 3 5,输出 4,5,6,7,8 */
----------------解决方案--------------------------------------------------------
我的原意:输入 3 5,输出的是 4,,6,8,9,10 这5个非素数。
----------------解决方案--------------------------------------------------------
  相关解决方案