学习了处理数字的办法,如何判断一个数是几位数,如何将他顺序输出,如何将他逆序输出。在生活中,用处特别大。
1、判断数字位数。
首先,我们来看一下如何判断给出的数是几位数。次判断方法由两句核心语句组成:
intcount = 0;
while(n !=0) //判断他是一个非零的数
{
count++; //当他为非零数时,位数加一
n /=10; //丢弃个位
}
首先判断数是否为零,若不为零,位数加一,再丢弃个位,直到数为零时,循环结束输出位数。
2、顺序输出这个数。
在顺序输出中,我们要调用判断位数的函数。我们还需要定义一个power数,用来保存10的次方数。首先调用它是一个几位数,再利用循环将power赋值成10的位数减一次方,用数除power,得到最高位,用数余power丢弃最高位,再将power除十去位,再进行循环。直到数为零,循环结束。
核心语句:
int power = 1;
for(int r = 1;r <= count-1;r++)
{
power*=10;
}
while(n!=0)
{
printf(“%d”,n/power); //得到最高位
n %=power; //丢弃最高位
power/=10;
}
3、逆序输出这个数
相比顺序,逆序输出更加简单,首先判断他是否为零,再将它余十得出最小位,输出后再除十,丢弃最小位。
核心语句:
while(n != 0)
{
count= n%10; //得到最小位
printf(“%d\n”,count); //输出最小位
n /=10; //抛弃最小位
}
以下为源代码:
//判断一个数是几位数
#include<stdio.h>
int GetNumbers(int n)
{
int count =0;
while(n !=0) //判断他是一个非零的数
{
count++; //当他为非零数时,位数加一
n /=10; //丢弃个位
}
returncount;
}
int main()
{
printf(“此数字为%d位数\n”,GetNumbers(57777));
printf(“此数字为%d位数\n”,GetNumbers(503768));
return 0;
}
//逆序输出一个数
#include<stdio.h>
int PrintReverse(int n)
{
int count =0;
while(n !=0)
{
count= n%10; //得到最小位
printf(“%d\n”,count); //输出最小位
n /=10; //抛弃最小位
}
return 0;
}
int main()
{
PrintReverse(122562);
return 0;
}
//顺序输出一个数
#include<stdio.h>
int GetNumbers(int n)
{
int count =0;
while(n !=0)
{
count++;
n /=10;
}
returncount;
}
int PrintOrder(int n)
{
int count =GetNumbers(n);
int power =1;
for(int r =1;r <= count-1;r++)
{
power*=10;
}
while(n!=0)
{
printf(“%d”,n/power); //得到最高位
n %=power; //丢弃最高位
power/=10;
}
return 0;
}
int main()
{
PrintOrder(12345);
return 0;
}