永发信息网

c语言:该函数的 功能是:将大于整数 m 且紧靠 m 的 k 个素数存入 xx 所指的数 组中。

答案:1  悬赏:40  手机版
解决时间 2021-01-10 11:10
  • 提问者网友:抽煙菂渘情少年
  • 2021-01-10 02:19
c语言:该函数的 功能是:将大于整数 m 且紧靠 m 的 k 个素数存入 xx 所指的数 组中。
最佳答案
  • 五星知识达人网友:天凉才是好个秋
  • 2021-01-10 03:38
for(i=m+1;i
因为是比m大的,所以i的起始值是 m+ 1。 给你举个例子吧:
假设是将大于整数 4 的5个素数存入xx数组中,也即是m = 4,k = 5进到fun函数中的实现方式就是:
i = 4 + 1 = 5的时候, 执行到 i%j!=0这一句就是 5 % 2 == 1,flag = 1; 5 % 3 = 2,flag = 1; 5 % 4= 1,flag = 1 ;因为j < i, 所以执行到这里就结束了,然后这时候flag = 1,然后到判断if(flag==1&&j>=i)这一句,第一个条件flag==1成立, 因为j = 5(这里不懂就追问),所以有 j == i,所以这个语句成立,执行i
f(k>=0)
{
xx[g++]=i; k--;
}
这时候k的值为5(最开始设置的),所以成立,执行将当前素数 i 存入数组xx中,并且让k --,k减一的效果是,总共存五个,现在存了一个,只剩下四个。

然后继续循环 6,7,8,9(解析方式一样).。。。。。一直到能存入五个素数为止。
不懂继续追问!追问为什么j=5?flag=1和flag==1是什么意思?为什么要在开头定义flag=1?有什么作用追答基础确实该好好打打了。
for循环执行到了最后,会有 j = 4, 然后会执行 j++, 然后判断 j < i, 虽然不成立,但是这时候 j 已经变成了5 。
flag=1是给flag赋值为1,flag==1是判断当前flag的值是否等于1,在开头定义flag = 1是初始化,这个没有什么作用,你改为0也可以。追问为什么i要从m+1到m*m循环?追答我不是说了吗,因为题目要求将大于整数 m 且紧靠 m 的 k 个素数,大于整数m自然是要从m + 1开始循环,至于m*m这个就是你自己定了,只要能满足找出k个素数就可以!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯