fun函数的功能是将大于形参m且紧靠m的k个素数存入xx 数组中

2025-02-24 09:26:30
推荐回答(3个)
回答1:

void fun(int m, int k, int xx[])
{
int i, j=1, t=m+1;
while(j<=k)
{
/* 以下完成判断素数,并存放到数组xx中 */
for(i = 2 ; i < t; i++) //素数的标准就是只有1和他本身两个因子,故只要把他从2开始除,如果能 除尽则证明他还有出1和本身的第三个因子,说明不是素数,break掉,否则就是啦!
if(t % i==0) break;
if(i==t) {
xx[j-1] = i;
j++;
}
t++;
}
}

}
最后说明一:
(1)你写的这个函数是不能完成你所要的功能的,因为你所用函数采用的是值传递,函数所使用的xx[]数组是函数调用的时候临时分配的,函数调用完就销毁了,所以建议改用地址传递。
(2)注意变成风格,不要把代码写成一团,应该层次分明,有利于查错!

回答2:

for(i = 2 ; i < t; i++)
if(t % i==0) break; //如果t整除i则跳出for循环,i从2变化到t

if(i==t)
{
xx[j-1] = i;
j++;
} //当跳出循环时i和t的值相等时表示从2到t-1的数都不能整出t
因此t为素数存入数组xx 。j表示找到的素数个数,因此j++

t++ //t表示m后的一个数,每判断m后的一个数,t++表示下一个数
while(j<=k) //一直当找到k个素数

回答3:


int xx[100];
下忘了吧数组的地址付给p了
p=xx;
还有,sqrt()应包含头文件math.h