给出一个整数n(0<=n<=100000000)。求出该整数的位数,以及组成该整数的所有数字中的最大数字和最小数字。

标题
整数分析

类别
流程控制

时间限制
1S

内存限制
256Kb

问题描述
给出一个整数n(0<=n<=100000000)。求出该整数的位数,以及组成该整数的所有数字中的最大数字和最小数字。

输入说明
输入一个整数n(0<=n<=100000000)

输出说明
在一行上依次输出整数n的位数,以及组成该整数的所有数字中的最大数字和最小数字,各个数字之间用空格分隔。

输入样例
217

输出样例
3 7 1

你题目的解答代码如下:

#include <stdio.h>

int main()
{
    long x;
    int c=0, max=0,min=9;
    scanf("%ld",&x);
    if (x==0)
    {
        c=1;
        max=0;
        min=0;
    }
    else
        while (x>0)
        {
            int t = x%10;
            if (t>max)
                max = t;
            if (t<min)
                min = t;
            x/=10;
            c++;
        }
    printf("%d %d %d",c,max,min);
    return 0;
}

img

如有帮助,望采纳!谢谢!

对于数字,每次将其模10获取个位数,并将其除以10,直到数字变为0.,统计除以10的次数
示例代码如下
有帮助望采纳~

#include <stdio.h>

int main(int argc, char const *argv[])
{
    int a = 0;
    scanf("%d", &a);
    int count = 0, min, max, temp = 1;
    while (a)
    {
        if (temp)
        {
            min = max = a % 10;
            temp = 0;
        }
        else
        {
            if (min > a % 10)
                min = a % 10;
            if (max < a % 10)
                max = 1 % 10;
        }
        a /= 10;
        count += 1;
    }
    printf("%d %d %d", count, max, min);
};

img