请补充函数fun,该函数的功能是:整除x且是偶数的数,把这些数保存在数组bb中,并按从大到小的顺序输出。 例如当x=20时,依次输出:20 10 4 2。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。试题程序:*/ #include <stdio.h> void fun(int k,int bb[]) { int i; int j=0; /**********FILL**********/ for( [1] ;i<=k;i++) { /**********FILL**********/ if( [2] ) bb[j++]=i; } printf("\n\n"); /**********FILL**********/ for(i= [3] ;i>=0;i--) printf("%d ",bb[i]); } int main() { int k=1; int bb[100]; printf("\nPlease input X="); scanf("%d",&k); fun(k,bb); return 0; }
时间: 2023-08-20 15:04:46 浏览: 59
#include <stdio.h>
void fun(int k,int bb[]) {
int i;
int j=0;
for(i=1;i<=k;i++) { // [1] i从1开始
if(i%2==0 && k%i==0) // [2] 判断是否整除x且是偶数
bb[j++]=i;
}
printf("\n\n");
for(i=j-1;i>=0;i--) // [3] 从大到小输出
printf("%d ",bb[i]);
}
int main() {
int k=1;
int bb[100];
printf("\nPlease input X=");
scanf("%d",&k);
fun(k,bb);
return 0;
}
相关问题
请编写函数fun,函数的功能是:求出能整除形参x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。例如,若x中的值为:35,则有4个数符合要求,它们是:1,3,7,35。
以下是函数fun的实现,它可以求出能整除形参x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。
```cpp
void fun(int x, int pp[], int* n) {
int i, j = 0;
for (i = 1; i <= x; i++) {
if (x % i == 0 && i % 2 != 0) {
pp[j++] = i;
}
}
*n = j;
}
```
其中,x是形参,表示需要求出能整除x且不是偶数的各整数;pp是形参,表示将符合条件的整数按从小到大的顺序放在pp所指的数组中;n是形参,表示符合条件的整数的个数,通过指针返回。
例如,若x中的值为35,则有4个数符合要求,它们是1,3,7,35。
请编写函数fun,它的功能是:求出能整除形参x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。 例如,若 x 中的值为: 35,则有 4 个数符合要求,它们是: 1, 5, 7, 35
以下是函数fun的实现,其中使用了动态内存分配来存储结果数组pp:
```c
void fun(int x, int **pp, int *n) {
int cnt = 0;
for (int i = 1; i <= x; i += 2) {
if (x % i == 0) {
cnt++;
}
}
*n = cnt;
*pp = (int *)malloc(cnt * sizeof(int));
cnt = 0;
for (int i = 1; i <= x; i += 2) {
if (x % i == 0) {
(*pp)[cnt++] = i;
}
}
}
```
使用示例:
```c
int main() {
int x = 35;
int *pp, n;
fun(x, &pp, &n);
for (int i = 0; i < n; i++) {
printf("%d ", pp[i]);
}
free(pp); // 记得释放内存
return 0;
}
```
输出结果为:`1 5 7 35`。