C语言输入正整数 n ,编程输出所有 1~n 之间所有含有数字 12 或 12 的倍数的所有的数(如:24、112 等)。 输入输出格式 输入格式 第一行有一个整数 n 。 输出格式 从小到大输出所有的符合条件的数,数字和数字之间使用空格分隔。
时间: 2024-09-07 16:05:07 浏览: 158
在C语言中,你可以使用嵌套循环来遍历从1到n的所有数字,并检查它们是否包含12或者是否是12的倍数。如果满足条件,就将它加入到输出列表中。这里是一个简单的示例程序:
```c
#include <stdio.h>
#include <stdbool.h> // 引入布尔类型
bool contains_12(int num) {
while (num) {
if (num % 10 == 1 && num % 100 != 12) // 检查十位是否有1并且不是12
return false;
else if (num % 100 == 12 || num % 1000 % 12 == 0) // 检查百位或千位是否是12或12的倍数
return true;
num /= 10;
}
return false;
}
int main() {
int n, i, j;
scanf("%d", &n);
for (i = 1; i <= n; i++) {
if (contains_12(i)) {
printf("%d ", i); // 输出符合条件的数
}
}
return 0;
}
```
这个程序首先定义了一个辅助函数`contains_12`,用于检查一个数是否包含12或者它的倍数。然后,在主函数中,我们遍历1到n的每个数,对每个数调用该函数,如果是符合条件的,则打印出来。
阅读全文