请补充函数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:题目要求各结点的值为对应的下标,头结点的值为0,其他结点的值从1开始,所以此空应填i。填空2:为了将结点p和结点s连接起来,应将结点p的next 指针指向结点s。填空3:为了通过for 循环形成链表,每执行完一次循环操作,都要将指针p 指向下一个结点。