请编写函数fun,其功能是:将所有大于1小于等于整数m的非素数存入xx所指数组中,非素数的个数通过k传回。 例如,输入17,则应输出4 6 8 9 10 12 14 15 16。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序:*/ #include<conio.h> #include<math.h> #include<stdio.h> #include<stdlib.h> int fun(int m, int xx[]) { /**********Begin*******/ /*********End*********/ } int main() { FILE *wf,*in; int m, n, zz[100]; printf("\nPlease enter an integer number between 10 and 100: "); scanf("%d",&n); m=fun(n,zz); printf("\n\nThere are %d non-prime numbers less than %d: ",m,n); for(n=0;n<m;n++) printf("\n %4d",zz[n]); /******************************/ wf=fopen("1.out","w"); in=fopen("1.in","r"); fscanf(in,"%d",&n); m=fun(n,zz); for(n=0;n<m;n++) fprintf(wf,"%d\n",zz[n]); fclose(wf); fclose(in); /*****************************/ system("pause"); return 0; }
时间: 2023-07-05 17:35:51 浏览: 91
```
int fun(int m, int xx[]) {
int k = 0;
for (int i = 2; i <= m; i++) {
int flag = 0;
for (int j = 2; j <= sqrt(i); j++) {
if (i % j == 0) {
flag = 1;
break;
}
}
if (flag) {
xx[k++] = i;
}
}
return k;
}
```
相关问题
/*请编写函数fun,其功能是:将所有大于1小于整数m的非素数存入xx所指数组中,非
素数即指在大于1的自然数中,除了1和本身外没有其他因子的数。要求编写一个函数fun,功能是将所有大于1小于整数m的非素数存入xx所指数组中。
首先,我们可以编写一个判断素数的函数isPrime,该函数判断一个数是否为素数。然后,我们可以使用循环从2开始遍历到m-1,判断每个数是否为素数,如果不是素数,则将其存入xx所指数组中。
下面是具体的函数实现:
```c++
#include <iostream>
#include <cmath>
using namespace std;
bool isPrime(int num) {
if (num < 2) return false;
for (int i = 2; i <= sqrt(num); i++) {
if (num % i == 0) return false;
}
return true;
}
void fun(int* xx, int m) {
int count = 0;
for (int i = 2; i < m; i++) {
if (!isPrime(i)) {
xx[count++] = i;
}
}
}
int main() {
int m = 20; // 假设m为20
int xx[100] = {0}; // 假设数组长度为100
fun(xx, m);
for (int i = 0; i < 100; i++) {
if (xx[i] != 0) {
cout << xx[i] << " ";
}
}
return 0;
}
```
上述代码中,我们假设整数m为20,并假设存储非素数的数组长度为100。函数fun将所有大于1小于整数m的非素数存入xx所指数组中,并使用循环打印出非素数数组的内容。运行结果为:4 6 8 9 10 12 14 15 16 18。
请编写函数fun,其功能是: 将所有大于1小于整数m的非素数存入xx所指数组中, 非素数的个数通过k传回。
```
#include <stdio.h>
#include <math.h>
void fun(int m, int *xx, int *k)
{
int count = 0; // 计数器,记录非素数的个数
int i, j;
for(i = 2; i < m; i++)
{
for(j = 2; j <= sqrt(i); j++)
{
if(i % j == 0) // i不是素数
{
xx[count] = i; // 将i存入数组xx中
count++; // 非素数个数加1
break; // 跳出循环,i不需要再进行判断
}
}
}
*k = count; // 将非素数个数传回
}
int main()
{
int m = 20;
int xx[100] = {0}; // 初始化数组
int k; // 非素数个数
fun(m, xx, &k);
printf("非素数个数为:%d\n", k);
int i;
for(i = 0; i < k; i++)
{
printf("%d ", xx[i]);
}
printf("\n");
return 0;
}
```