c语言不用bool函数写 求1-n之间能被3整除且至少有一位数字是5的所有正整数的个数
时间: 2024-09-08 15:01:03 浏览: 53
C语言函数一些容易犯错错误的例子
在C语言中,我们可以不使用标准库中的`bool`类型和相关的`true`/`false`值来实现这个功能。我们可以定义一个整数变量来代替布尔值,比如使用1表示真,0表示假。以下是一个示例代码,用于计算1到n之间能被3整除且至少有一位数字是5的所有正整数的个数:
```c
#include <stdio.h>
// 判断整数是否包含数字5
int containsFive(int number) {
while (number > 0) {
if (number % 10 == 5) {
return 1; // 包含数字5,返回1
}
number /= 10; // 去掉最后一位数字
}
return 0; // 不包含数字5,返回0
}
// 计算满足条件的数的个数
int countNumbers(int n) {
int count = 0;
for (int i = 1; i <= n; ++i) {
if (i % 3 == 0 && containsFive(i)) { // 判断是否能被3整除且包含数字5
count++;
}
}
return count;
}
int main() {
int n;
printf("请输入正整数n:");
scanf("%d", &n);
printf("1到%d之间能被3整除且至少有一位数字是5的正整数有%d个\n", n, countNumbers(n));
return 0;
}
```
这段代码首先定义了一个`containsFive`函数,用于判断一个整数是否包含数字5。然后定义了`countNumbers`函数用于计算满足条件的数的个数。最后在`main`函数中读取用户输入的n值,并输出结果。
阅读全文