用c语言编写:下列给定程序中 ,函数fun的功能是:计算并输出k以内最大的10个能被13或17整除的自然数之和。k值由主函数传入,若k的值为500,则函数值为4622。
时间: 2023-12-14 12:38:55 浏览: 191
以下是用C语言编写的程序:
```c
#include <stdio.h>
int fun(int k) {
int sum = 0, count = 0, i;
for(i = k; i > 0 && count < 10; i--) {
if(i % 13 == 0 || i % 17 == 0) {
sum += i;
count++;
}
}
return sum;
}
int main() {
int k = 500;
int result = fun(k);
printf("k = %d, result = %d\n", k, result);
return 0;
}
```
运行结果为:
```
k = 500, result = 4622
```
函数`fun`中,先初始化变量`sum`和`count`为0,表示当前还没有找到任何一个符合条件的数。然后从`k`开始倒序循环,如果当前数能被13或17整除,则将其加到`sum`中,并将`count`加1。当`count`达到10时,退出循环。最后返回`sum`的值。
在`main`函数中,将`k`设为500并传入`fun`函数中,将返回值赋给`result`,并输出结果。
相关问题
用C语言编写函数fun,函数的功能是:计算并输出给定整数n的所有因子之和(包括1与自身)。规定n的值不大于1000。例如:n的值为855时,应输出1560。
好的,我明白了。下面是用 C 语言编写的函数 fun,可实现计算给定整数 n 的所有因子之和。
```c
#include <stdio.h>
int fun(int n) {
int sum = 1;
for (int i = 2; i <= n / 2; i++) {
if (n % i == 0) {
sum += i;
}
}
sum += n;
return sum;
}
int main() {
int n = 855;
printf("%d", fun(n));
return 0;
}
```
函数 fun 的算法思路如下:
1. 初始化变量 sum 的值为 1,用来存放所有因子之和,因为 1 也是 n 的因子。
2. 循环 i 从 2 开始到 n 的一半,如果 n 能被 i 整除,就把 i 加入 sum 中。
3. 最后,把 n 加入 sum 中,并返回 sum 的值作为函数 fun 的返回值。
经测试,当 n 为 855 时,函数 fun 的输出结果为 1560,符合要求。
c语言编写函数fun,函数的功能是:计算并输出给定整数n的所有因子之和(包括1与自身)。规定n的值不大于1000。例如:n的值为855时,应输出1560。
好的,可以使用以下代码实现:
```c
#include <stdio.h>
int fun(int n)
{
int sum = 0;
for (int i = 1; i <= n; i++)
{
if (n % i == 0)
{
sum += i;
}
}
return sum;
}
int main()
{
int n = 855;
int result = fun(n);
printf("%d", result);
return 0;
}
```
输出结果为1560。这个函数的意思是:定义一个变量sum,初始值为0,然后从1遍历到n,如果n能被当前遍历的数整除,就把这个数加到sum上面。最后返回sum即可。
阅读全文
相关推荐















