问题 问答题

编写函数fun,其功能是:将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k返回。
例如,若输入17,则应输出:4 6 8 9 1012 14 15 16。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<sfdio.h>
void fun(int m,int*k,int xx[])


void main()
(
int m,n,zz[100];
system("CLS");
printf("\nPlease enter an integer number between 10 and 100:");
scanf("%d",&n);
fun(n,&m,zz);
printf("\n\nThere are%d non-prime numbers less than%d:",m,n);
for(n=O;n<m;n++)
printf("\n%4d",zz[n]);

答案

参考答案:

void fun(inf m,int*k,int xx[])

{

inf i,j,n=O;

for(j=D;i<m;i++) /*找出大于A小于m的非素数*/

( for(j=B;j<i;j++)

if(i%j==O)break;

if(j<i)xx[n++]=i;

}

*k=n; /*返回非素数的个数*/

}

解析:

本题关键字有:非素数的判断;循环判断结构;数组的引用。只能被1和它本身整除的数为素数,判断是否为素数常用如下代码实现:

for(j=2;j<i;j++)

if(i%j==0)

[微分析]

将1~m之间的非素数存入数组中,可以用循环判断结构。循环语句遍历1~m之间的每个数,判断语句判断该数是否为素数,将非素数存入数组中。

选择题
单项选择题