统计数位:得到个位 丢弃个位

1.得到个位:利用整除与取余
数字12345
12345%10=5 12345/10=1234
1234%10=4 1234/10=123
123%10=3 123/10=12
12%10=2 12/10=1
1%10=1 1/10=0 即n等于0的时候结束

例题:输入一个N位整数,要求逆序输出各位数字
代码如下:
#include<stdio.h>
void PrintReverse(int n)
{
int temp;
if (0 == n) //注意n等于0的情况
{
printf(“0\n”);
}
if (n < 0) //注意n为负数的情况
{
n = -n;
printf("-");
}
while(n != 0)
{
temp = n % 10; //取余
n /= 10;
printf("%d",temp);
}
printf("\n");
}

int main()
{
Printreserve(5614);
Printreserve(-1561);
Printreserve(0);
return 0;
}

2.丢弃个位:利用整除
数字12345
12345/10000=1 12345%10000=2345
2345/1000=2 2345%(10000/10)=345
345/100=3 345%(1000/10)=45
45/10=4 45%(100/10)=5
5/1=5 5%(10/10)=5
(1/10)=0 即除数为0的时候结束

例题:输入一个N位数,要求正序输出各位数字
代码如下:
#include<stdio.h>
unsigned char GetFigures(int n) //先求出是个几位数
{
unsigned char figures = 0;
while(n!=0)
{
n /= 10; //利用丢弃个位数数的方法
figures++;
}
return figures;
}

void PrintOrder(int n)
{
unsigned char figures = GetFint powe(n);
int power = (int)pow((float)10,(float)figures-1);
int temp;
if (0 == figures)
{
printf(“0\n”);
}
if (n < 0)
{
n = -n;
printf("-");
}
while(power != 0)
{
temp = n / power;
n %= power;
power /= 10;
printf("%d",temp);
}
printf("\n");
}

int main()
{
PrintOrder(0);
PrintOrder(125);
PrintOrder(-545);
return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_44777506/article/details/88925415