C语言定义子函数,计算并输出500以内最大的10个能被13或17整除的自然数之和
时间: 2023-12-24 21:03:13 浏览: 86
C语言程序设计-计算出k以内最大的10个能被13或17整除的自然数之和;(k〈3000);.c
5星 · 资源好评率100%
以下是一个计算500以内最大的10个能被13或17整除的自然数之和的程序:
```
#include <stdio.h>
int is_divisible(int n, int a, int b) {
return (n % a == 0) || (n % b == 0);
}
int main() {
int max_nums[10] = {0};
int sum = 0;
for (int i = 1; i <= 500; i++) {
if (is_divisible(i, 13, 17)) {
for (int j = 0; j < 10; j++) {
if (i > max_nums[j]) {
for (int k = 9; k > j; k--) {
max_nums[k] = max_nums[k - 1];
}
max_nums[j] = i;
break;
}
}
}
}
for (int i = 0; i < 10; i++) {
sum += max_nums[i];
}
printf("最大的10个能被13或17整除的自然数之和是:%d\n", sum);
return 0;
}
```
其中,`is_divisible` 函数用于判断某个自然数 `n` 是否能被 `a` 或 `b` 整除,返回值为 `1` 表示能被整除,返回值为 `0` 表示不能被整除。主函数 `main` 则在循环中判断每个自然数是否能被 `13` 或 `17` 整除,并找出最大的10个能被 `13` 或 `17` 整除的自然数。在找到比当前最大值更大的数时,使用类似插入排序的方法将它插入到 `max_nums` 数组中。最后,循环遍历 `max_nums` 数组求和并输出结果。
阅读全文