每日一题 -20200403- 判断一个整型数据有几位 从键盘输入一个整型数据(int型),并输出包含各个数字的个数。

判断一个整型数据有几位
从键盘输入一个整型数据(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 ,就说明计数计完了,结束循环

其实,根据自己的思路确定循环体,不一样的循环体,会有不一样的条件结束。

发布了18 篇原创文章 · 获赞 0 · 访问量 198

猜你喜欢

转载自blog.csdn.net/weixin_46456339/article/details/105303312