c语言统计个位数出现的次数
时间: 2024-10-14 13:08:32 浏览: 2
在C语言中,统计个位数出现的次数通常涉及到数组或者循环结构。如果你有一个整数数组,你可以遍历这个数组,对每个元素取模运算(%),得到它的个位数,然后在一个计数数组中对应的位置加一。如果你想处理单个整数,可以先将其转换成字符串,然后逐字符检查。
以下是一个简单的示例,假设我们想统计一个整数列表 `numbers` 中每个数字0-9出现的次数:
```c
#include <stdio.h>
#include <string.h>
int main() {
int numbers[] = {123, 4567, 8901, 2345};
int counts[10] = {0}; // 初始化计数数组
for (int i = 0; i < sizeof(numbers) / sizeof(numbers[0]); i++) {
char digit = (numbers[i] % 10) + '0'; // 取个位并转为字符
counts[digit - '0']++; // 增加对应位置的计数
}
for (int i = 0; i < 10; i++) {
printf("数字%d出现了 %d 次\n", i, counts[i]);
}
return 0;
}
```
相关问题
个位数出现的次数c语言
这个问题是关于统计一个整数中每个个位数字出现的次数的问题。以下是两种不同的C语言实现方法:
方法一:
```
#include <stdio.h>
#include <string.h>
int main() {
char num[1001];
int count[10] = {0};
scanf("%s", num);
int len = strlen(num);
for (int i = 0; i < len; i++) {
count[num[i] - '0']++; }
for (int i = 0; i < 10; i++) {
if (count[i] != 0) {
printf("%d:%d\n", i, count[i]);
}
}
return 0;
}
```
方法二:
```
#include <stdio.h>
int main() {
int num, digit, count[10] = {0};
scanf("%d", &num);
while (num > 0) {
digit = num % 10;
count[digit]++;
num /= 10;
}
for (int i = 0; i < 10; i++) {
if (count[i] ! 0) {
printf("%d:%d\n", i, count[i]);
}
}
return 0;
}
```
相关问题:
C语言 输入一个整数,统计它每个位数上的数字,最后输出每个数字出现的次数
可以使用数组来统计每个数字出现的次数,具体实现如下:
```c
#include <stdio.h>
int main() {
int num;
int digits[10] = {0}; // 初始化数组
printf("请输入一个整数:");
scanf("%d", &num);
while (num > 0) {
int digit = num % 10; // 取出最后一位数字
digits[digit]++; // 对应数字出现次数加1
num /= 10; // 去掉最后一位数字
}
printf("每个数字出现的次数如下:\n");
for (int i = 0; i < 10; i++) {
printf("%d出现了%d次\n", i, digits[i]);
}
return 0;
}
```
首先,定义一个名为 `digits` 的数组,用来统计每个数字出现的次数。数组的下标表示数字本身,数组元素表示该数字出现的次数。初始值都设为0。
然后,使用 `scanf` 函数接收用户输入的整数。通过循环,不断取出这个整数的最后一位数字,并将对应的数组元素加1,直到整个数被取完。
最后,使用循环遍历整个数组,输出每个数字出现的次数。