标题
整数分析
类别
流程控制
时间限制
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;
}
如有帮助,望采纳!谢谢!
对于数字,每次将其模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);
};