请用c语言编写函数fun(),它的功能是:求出1到1000之内能被5或13整除、但不能同时被5和13整除的所有整数并将它们放在a所指的数组中,通过n返回这些数的个数。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 #include<stdio.h> void fun(int *a, int *n) { } int main() { int aa[1000],n,k; fun(aa,&n); for (k=0;k<n;k++) if((k+1)%10==0) { printf("%5d",aa[k]) ; printf("\n"); /*-行写10个 数*/ } else printf("%5d",aa[k]); return 0; }
时间: 2023-11-22 12:53:57 浏览: 80
以下是函数fun的实现:
```c
void fun(int *a, int *n) {
int count = 0;
for (int i = 1; i <= 1000; i++) {
if ((i % 5 == 0 || i % 13 == 0) && !(i % 5 == 0 && i % 13 == 0)) {
*(a + count) = i;
count++;
}
}
*n = count;
}
```
该函数的实现过程为:
1. 定义一个计数器`count`,用于记录符合条件的数的个数。
2. 循环遍历1到1000之间的数。
3. 判断当前数是否能被5或13整除,且不能同时被5和13整除。
4. 如果符合条件,将该数存入数组中,并将`count`加1。
5. 循环结束后,将`count`的值赋给指针变量`n`,表示符合条件的数的个数。
相关问题
c语言代码编写函数fun(),它的功能是:求出1到1000以内同时能被5和13整除 的数,通过n返回这些数的个数
下面是一个实现求出1到1000以内同时能被5和13整除的数,并通过n返回这些数的个数的C语言函数fun():
```c
int fun(int *n) {
int count = 0;
for(int i = 1; i <= 1000; i++) {
if(i % 5 == 0 && i % 13 == 0) {
count++;
}
}
*n = count;
return count;
}
```
其中,函数fun()接收一个指向整型变量的指针n作为参数,用于返回符合要求的数的个数。在函数中使用一个循环,遍历1到1000之间的所有整数,如果某个数能同时被5和13整除,则计数器count加1。最后将count的值存储到n所指向的变量中,并返回count的值。
用c语言 编写函数fun,它的功能是: 求出 1 到 1000 之间能被 7 或11整除、但不能同时被 7 和 11 整除的所有整数并将它们放在a所指的数组中,通过 n 返回这些数的个数。
好的,下面是实现函数fun的C语言代码:
```c
int fun(int *a)
{
int n = 0;
for (int i = 1; i <= 1000; i++) {
if ((i % 7 == 0 || i % 11 == 0) && i % (7 * 11) != 0) {
a[n++] = i;
}
}
return n;
}
```
函数的参数是一个指向整型数组的指针a。在函数中,我们遍历1到1000之间的所有整数,如果这个整数能被7或11整除,但不能同时被7和11整除,就将它加入数组a中,并且将n计数器加1。最后返回n,即为符合要求的整数的个数。
注意在函数中不需要动态分配数组空间,因为数组a已经在函数外部定义并分配了空间。