C语言 输入一个整数,统计它每个位数上的数字,最后输出每个数字出现的次数
时间: 2023-12-14 20:36:19 浏览: 58
可以使用数组来统计每个数字出现的次数,具体实现如下:
```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,直到整个数被取完。
最后,使用循环遍历整个数组,输出每个数字出现的次数。
相关问题
C语言输入一个整数求它的位数
可以使用循环和除法运算来计算一个整数的位数。具体的实现方式如下:
```c
#include <stdio.h>
int main() {
int num, digit_count = 0;
printf("请输入一个整数:");
scanf("%d", &num);
do {
digit_count++;
num /= 10;
} while (num != 0);
printf("这个整数的位数是:%d\n", digit_count);
return 0;
}
```
在上面的代码中,我们首先通过 `scanf` 函数从用户处获取了一个整数 `num`,然后使用 `do-while` 循环来不断将 `num` 除以 10,直到 `num` 变为 0。在每一次循环中,我们将 `digit_count` 计数器加 1,表示整数的位数增加了一个。最后输出 `digit_count` 的值即可。
输入一个整数,输出每个数字对应的拼音,当整数为负数时,先输出fu字。C语言
在C语言中,可以通过以下方式实现输入一个整数,输出每个数字对应的拼音的功能:
```c
#include <stdio.h>
void printPinyin(int num) {
if (num < 0) {
printf("fu ");
num = -num;
}
int digits[10]; // 存储每个数字
int count = 0; // 数字的位数
// 将每个数字存入数组中
do {
digits[count++] = num % 10;
num /= 10;
} while (num != 0);
// 逆序输出每个数字对应的拼音
for (int i = count - 1; i >= 0; i--) {
switch (digits[i]) {
case 0:
printf("ling ");
break;
case 1:
printf("yi ");
break;
case 2:
printf("er ");
break;
case 3:
printf("san ");
break;
case 4:
printf("si ");
break;
case 5:
printf("wu ");
break;
case 6:
printf("liu ");
break;
case 7:
printf("qi ");
break;
case 8:
printf("ba ");
break;
case 9:
printf("jiu ");
break;
}
}
}
int main() {
int num;
printf("请输入一个整数:");
scanf("%d", &num);
printf("对应的拼音为:");
printPinyin(num);
return 0;
}
```
以上代码中,我们定义了一个`printPinyin`函数,用于输出每个数字对应的拼音。首先判断整数是否为负数,如果是负数,则先输出"fu "。然后将每个数字存入数组中,并逆序输出每个数字对应的拼音。在`main`函数中,我们通过`scanf`函数获取用户输入的整数,并调用`printPinyin`函数进行输出。