新人关于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个非素数。
----------------解决方案--------------------------------------------------------