#include <stdio.h>
#include <math.h>
#include <string.h>
//统计十进制整数为几位数字
int GetFigures(long long n)
{
if(n == 0)
return 1;
int count = 0;
while(n != 0)
{
n /= 10;//丢弃个位
count++;
}
return count;
}
//倒序输出 数字
void PrintReverse(long long n)
{
if(n == 0)
{
printf("0\n");
return ;//结束该函数
}
if(n < 0)
{
printf("-");
n = -n;
}
while(n != 0)
{
{
printf("%d ",n%10);
n /= 10;
}
}
printf("\n");
/*if(n == 0)
printf("0\n");
else
{
while(n != 0)
{
{
printf("%d ",n%10);
n /= 10;
}
}
printf("\n");
}*/
}
//顺序输出数字
void PrintOrder(long long n)
{
/*int fig = GetFigures(n);//得到n的位数
int power = pow(10.0,fig-1);
while(n != 0)//此方法存在bug,如10000或者12300等以0结尾的数字
{
printf("%d ",n/power);//得到最高位
n %= power;//丢弃最高位
power /= 10;
}
printf("\n");*/
//正确代码
int fig = GetFigures(n);
int power = pow(10.0,fig-1);
if(fig==1)
{
printf("%d ",n);
}
else
{
for(int i=1;i<=fig;i++)
{
printf("%d ",n/power);
n%=power;
power /= 10;
}
}
printf("\n");
}
int main()
{
PrintOrder(123456789);
PrintOrder(-123456789);
PrintOrder(12);
PrintOrder(0);
/*PrintReverse(123456789);
PrintReverse(-123456789);
PrintReverse(1);
PrintReverse(0);*/
//printf("%d\n",GetFigures(123456789));//测试用例
//printf("%d\n",GetFigures(-123456789));
//printf("%d\n",GetFigures(1));
//printf("%d\n",GetFigures(0));
/*printf("%d\n",Mysqrt(9));
printf("%d\n",Mysqrt(10));
int i = Mysqrt(10000);
printf("%d\n",i);*/
//strlen("abc");
return 0;
}
01-给一个整数(1):输出它是几位数(2):逆序输出每一位数字(3):顺序输出每一位数字
最新推荐文章于 2022-10-12 17:31:44 发布