C语言对任意一个整数的简单处理
- 统计任意一个整数为几位数字
- 主要思路:
12345/10 —> 1234 ,除法实质发生了去个位的效果。 利用这一特性,我们以 n 不等于(!=)0 为循环出口,循环进行除法运算,并初始化变量count进行储存发生除法运算的次数,该次数即为该整数的位数。
//统计一任意整数为几位数字
//12345 -> 5
int GetFigures(int n)
{
int count = 0; //用来统计数字位数
do
{
n /= 10; // 去个位
count++;
}while(n != 0);
return count;
}
- 逆序输出任意整数的每一位数字
-在计算机中,任何一个整数n,例如 123%10 —> 3 ,我们可以可以先对n进行求余输出,然后在对n去个位,再利用循环以n 不等于(!=)0 为循环出口,进行循环运算。如果整数n为负数,对n进行去符号,以达成逆序输出的目的。
//逆序输出每一个整数的个位数字
//12345 ->1 2 3 4 5
void PrintReverse(int n)
{
if(n < 0) //对负数去符号
{
printf("-");
n = -n;
}
while(n != 0)
{
printf(" %d",n%10);
n /= 10; //去个位
}
printf("\n");
}
-
顺序输出任意整数的每一位数字
-
456/100—>4 由此我们可以利用GetFigures(n)求整数n的位数的函数求出整数的位数,来确定n除以10的多少次方。然后利用循环以n 不等于(!=)0 为循环出口,不断的进行去首位输出,以达成顺序输出的目的。
//顺序输出每一个整数的个位数字
//12345 ->1 2 3 4 5
void PrintOrder(int n)
{
//FetGigures(n)求整数的位数的函数
int count = FetFigures(n); //count为整数的位数
int power = (int)pow(10.0,(count-1)); //计算1000..
while(n !=0)
{
printf("%d ",n/power);
n %= power;//去首位
power /= 10;
}
printf("\n");
}