中易网

2道c语言问题求教 !

答案:4  悬赏:60  
解决时间 2021-01-13 12:04
  • 提问者网友:浮克旳回音
  • 2021-01-13 01:45
2道c语言问题求教 !
最佳答案
  • 二级知识专家网友:洒脱疯子
  • 2021-01-13 02:30
第一题
第一个循环的时候,把x[i].a(i取0 1 2)分别赋值为1,2,3,x[i].b分别赋值为5,6,7

而x[i].next总是指向下一个数值,最后一个则指向第一个,是一个循环
第二个循环里输出一个x[0].a,然后输出下一个数x[1].b,然后是下一个x[2].a,然后是x[0].b.....以此循环
为了形象点,我们把x[i].a和x[i].b写成两行,
3 4 5 3 4 5
5 6 7 5 6 7
输出就是
按这张图的红线依次输出,循环3次,每次输出两个,就是输出6个数,结果是365547


第二题
是求一个数能不能表示成两个素数相加,pr函数的功能是判断一个数是否是素数,每次循环判断k和m-k是不是都是素数,都是素数说明该数可以表示成两个素数相加

输入30,输出就是30=7+23

全部回答
  • 1楼网友:神鬼未生
  • 2021-01-13 04:00



第一题
追答:分给上面那位吧,第一题就是一个循环链表应用。
追问:谢谢了
  • 2楼网友:时间的尘埃
  • 2021-01-13 03:08


第二道题目:
这道题的pr()函数是检测输入的n值是不是质数;如果是返回1,否则返回0;整个函数功能其实就是写出一个数字由两个质数相加的形式;例如,你输入30,就会出现;30=7+23;30=11+13;30=13+17;如果你输入20,他就会输出20=3+17,20=7+13;如果输入的数字无法写成两个质数相加,则不会输出;你可以实际编程检测;
  • 3楼网友:蕴藏春秋
  • 2021-01-13 02:48
把第一个for循环后的x的内容搞清楚就好办了!
x[0].a==3,x[0].b==5,x[0].next==&x[1];
x[1].a==4,x[1].b==6,x[1].next==&x[2];
x[2].a==5,x[2].b==7,x[2].next==&x[0]——最后这一项由x[2].next=x;完成。
第二个for循环中p=x使p==&x[0],下面由i控制作3次循环:
i==0时:输出p->a,就是x[0].a为3;接着p=p->next;使p指向x[1],所以输出x[1].b为6;再做一次p=p->next;使p指向x[2]。本次循环结果输出36……
i==1时:输出p->a,就是x[2].a为5;接着p=p->next;使p指向x[0],所以输出x[0].b为5;再做一次p=p->next;使p指向x[1]。本次循环后输出结果是3655……
i==2时:输出p->a,就是x[1].a为4;接着p=p->next;使p指向x[2],所以输出x[2].b为7;再做一次p=p->next;使p指向x[0]。本次循环后输出结果是365547。
i==3时循环结束,所以最后结果是365547。
////////////////////////////////////////////////////////////
本题的自定义函数pr是判断n是否为素数,是则返回1,反之返回0。输入30时,由k和30-k拆分为两个数,当k和30-k都为素数时输出30=系数1+系数2的表达。主函数中k=3开始,步长为2增至<30/2==15,所以k的取值是3,5,7,9,11,13,显然只有7+23,11+19,13+17三组都是系数,所以最后结果是30 = 7 + 23,30 = 11 + 19,30 = 13 +17。供参考……
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息