请补充函数fun(),该函数的功能是:寻找两个整数之间的的所有素数(包括这两个整数),把结果保存在数组bb中,函数返回素数的个数。 例如,输入6和21,则输出为:7 11 13 17 19 21。 注意:部分源程序给出如下。 请勿改动主函数main 和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。 试题程序: #include<conio. h> #include<stdio. h> #define N 1000 int fun (int n, int m, int bb [N]) { int i, j, k=0, flag; for (j=n; j<=m; j++) {【1】 ; for (i=2; i<j; i++) if( 【2】 ) { flag=0; break; } if( 【3】 )bb [k++] =j } return k; } main () { int n=0,m=0, i, k; int bb[N]; clrscr (); printf ("Input n\n"); scanf ("%d", &n); printf ("Input m\n"); scanf ("%d", &m); for (i=0; i<m-n; i++) bb[i]=0; k=fun (n, m, bb); for (i=0; i<k; i++) printf ("%4d",bb [i]); }
参考答案:
解析:[1] i [2] p->next=s [3] p->next 填空1:题目要求各结点的值为对应的下标,头结点的值为0,其他结点的值从1开始,所以此空应填i。填空2:为了将结点p和结点s连接起来,应将结点p的next 指针指向结点s。填空3:为了通过for 循环形成链表,每执行完一次循环操作,都要将指针p 指向下一个结点。