
初学C语言,请大家帮忙解释一下这道题中fun函数各步骤是干什么的,谢谢
请编写一个函数voidfun(intm,intk,intxx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入xx所指的数组中。例如,若输入:17,5,则应输出:...
请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入xx所指的数组中。例如,若输入:17,5,则应输出:19,23,29,31,37。
#include <stdio.h>
void fun(int m, int k, int xx[])
{
int i,j=0,x=m;;
while(j<k)
{x=x+1;
for(i=2;i<=x/2;i++)
if(x%i==0) break;
if(i>=x/2) xx[j++]=x;
}
}
main()
{
int m, n, zz[1000] ;
printf( "\nPlease enter two integers:") ;
scanf("%d%d", &m, &n ) ;
fun( m, n, zz) ;
for( m = 0 ; m < n ; m++ )
printf("%d ", zz[m]) ;
printf("\n") ;
} 展开
#include <stdio.h>
void fun(int m, int k, int xx[])
{
int i,j=0,x=m;;
while(j<k)
{x=x+1;
for(i=2;i<=x/2;i++)
if(x%i==0) break;
if(i>=x/2) xx[j++]=x;
}
}
main()
{
int m, n, zz[1000] ;
printf( "\nPlease enter two integers:") ;
scanf("%d%d", &m, &n ) ;
fun( m, n, zz) ;
for( m = 0 ; m < n ; m++ )
printf("%d ", zz[m]) ;
printf("\n") ;
} 展开
1个回答
展开全部
本人学习尚浅回答不足之处,还请谅解。
void fun(int m, int k, int xx[])//定义函数
{
int i,j=0,x=m;;
while(j<k)//限制了输出的个数。(用户输入的第二个数)
{x=x+1;//逐步向上排除
for(i=2;i<=x/2;i++)//满足条件
if(x%i==0) break;//剔除能被整除的
if(i>=x/2) xx[j++]=x;//判断是否是素数,如果是就把x放入数组xx[j++],j++计算数组个数,如果够了退出循环
}
void fun(int m, int k, int xx[])//定义函数
{
int i,j=0,x=m;;
while(j<k)//限制了输出的个数。(用户输入的第二个数)
{x=x+1;//逐步向上排除
for(i=2;i<=x/2;i++)//满足条件
if(x%i==0) break;//剔除能被整除的
if(i>=x/2) xx[j++]=x;//判断是否是素数,如果是就把x放入数组xx[j++],j++计算数组个数,如果够了退出循环
}
追问
想问您的是,if(i>=x/2)并不满足for(i=2;i<=x/2;i++)这个条件啊,为什么还要输出呢??谢谢
追答
满足啊,看清楚点,他们刚好是一样的,也就是说小于x/2的都输出
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询