用c语言编程求出所有不超过1000的数中,含有数字3的自然数,并统计总数
时间: 2023-12-21 14:07:41 浏览: 145
以下是用C语言编写的程序,可以求出所有不超过1000的数中,含有数字3的自然数,并统计总数:
```c
#include <stdio.h>
int main() {
int count = 0;
for (int i = 1; i <= 1000; i++) {
int num = i;
while (num > 0) {
if (num % 10 == 3) {
count++;
printf("%d\n", i);
break;
}
num /= 10;
}
}
printf("Total count: %d\n", count);
return 0;
}
```
程序的思路是:从1遍历到1000,对于每个数字,通过除10取余的方式,从低位到高位逐位判断是否含有数字3。如果含有数字3,则输出该数字并累加计数器。最后输出总数。
注意:这里的数字3指的是十进制下的数字3。如果要判断其他进制下的数字,需要对程序进行相应的修改。
相关问题
c语言求出1~1000中满足个位数字的立方等于其本身的所有数。
可以编写一个循环,遍历1到1000的所有数字,对于每个数字,取其个位数字并计算其立方值,再与该数字本身比较,如果相等,则输出该数字。
以下是符合要求的C语言代码:
```c
#include <stdio.h>
int main() {
int i, digit, cube;
for (i = 1; i <= 1000; i++) {
digit = i % 10;
cube = digit * digit * digit;
if (cube == i) {
printf("%d\n", i);
}
}
return 0;
}
```
该代码输出结果为:
```
1
8
27
64
125
216
343
512
729
```
用c语言求一个长度不超过30的字符串中数字的个数
可以使用C语言中的isdigit函数判断字符是否是数字,然后遍历字符串,统计出数字的个数即可。代码示例如下:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char str[31];
int count = 0;
printf("请输入一个长度不超过30的字符串:");
scanf("%s", str);
for(int i = 0; str[i] != '\0'; i++) {
if(isdigit(str[i])) {
count++;
}
}
printf("该字符串中数字的个数为:%d\n", count);
return 0;
}
```
输入一个字符串,例如 "abc123def456",输出结果如下:
```
请输入一个长度不超过30的字符串:abc123def456
该字符串中数字的个数为:6
```