判断一个整型数据有几位
从键盘输入一个整型数据(int型),用switch语句和循环语句编写程序判断该整数共有几位,并输出包含各个数字的个数。例如,从键盘输入整数16644,该整数共有5位,其中有1个1,2个6,2个4。
程序运行结果示例1:
12226↙
12226: 5 bits
1: 1
2: 3
6: 1
程序运行结果示例2:
Please enter the number:
-12243↙
-12243: 5 bits
1: 1
2: 2
3: 1
4: 1
输入格式: “%d”
输出格式:
输入提示信息:“Please enter the number:\n”
判断该整数共有几位:"%d: %d bits\n"
包含数字0的个数:“0: %d\n”
包含数字1的个数:“1: %d\n”
包含数字2的个数:“2: %d\n”
包含数字3的个数:“3: %d\n”
包含数字4的个数:“4: %d\n”
包含数字5的个数:“5: %d\n”
包含数字6的个数:“6: %d\n”
包含数字7的个数:“7: %d\n”
包含数字8的个数:“8: %d\n”
包含数字9的个数:“9: %d\n”
#include <stdio.h>
#include <math.h>
int main ( )
{
printf("Please enter the number:\n");
int num,d,j = 0,a[10]= {0},c,sum = 0;
scanf("%d",&num);
if(num < 0) c = fabs(num);
else c = num;
while(1)
{
d = c % 10;
a[d]++;
c /= 10;
sum++;
if (c == 0) break;
}
printf("%d: %d bits\n",num,sum);
for (j = 0; j < 10; j++) {
if(a[j] != 0)
printf("%d: %d\n",j,a[j]);
}
}
思路:
一 · 题目要求
1 · 判断有几位
2 · 求每个数字出现几次
二 · 思路
判断有几位其实可以通过每个数字出现几次求和来得到
看每一位上出现的数字式几,可以通过之前求个位数上的方法 num % 10 = 个位;
(循环体:)
把每一位都变成个位就好了
num / 10;num / 100;num /1000
最后eg
num / 10000000 = 0 ,就说明计数计完了,结束循环
其实,根据自己的思路确定循环体,不一样的循环体,会有不一样的条件结束。