输出100到1000之间各位数字之和能被15整除的所有数,输出时每10个一行。
时间: 2024-12-29 14:29:01 浏览: 7
要实现这个需求,我们可以编写一个循环,从100遍历到1000,对于每个数,检查它的各个位数之和是否能被15整除。如果是,就将其添加到结果列表中。当计数达到10时,打印这一行的结果并清空列表,继续下一行的处理。下面是相应的C语言代码:
```c
#include <stdio.h>
#include <string.h>
void print_numbers(int* arr, int size) {
for (int i = 0; i < size; i++) {
printf("%d", arr[i]);
if ((i + 1) % 10 == 0) {
printf("\n");
} else {
printf(" ");
}
}
}
int sum_of_digits(int num) {
int sum = 0;
while (num != 0) {
sum += num % 10;
num /= 10;
}
return sum;
}
int main() {
int numbers[100] = {0};
int count = 0;
int current_num = 100;
while (current_num <= 1000) {
int digit_sum = sum_of_digits(current_num);
if (digit_sum % 15 == 0) {
numbers[count++] = current_num;
if (count == 10) {
print_numbers(numbers, count);
count = 0;
}
}
current_num++;
}
// 打印剩余的数字(如果有的话)
if (count > 0) {
print_numbers(numbers, count);
}
return 0;
}
```
这段代码首先定义了一个`print_numbers`函数用于按每10个数字分隔的方式打印数组元素,然后用`sum_of_digits`函数计算一个数的各个位数之和。在主函数中,我们创建一个`numbers`数组用来存储找到的符合条件的数,并使用`count`变量记录已找到的数的数量。
在while循环中,我们逐个检查从100到1000的数字,如果满足条件则加入数组,当达到10个后打印并重置计数器。最后,如果还有未打印的数字,也会一起输出。
阅读全文