关于数字循序、逆序及位数输出问题

一个数字从最高位开始循序输出问题
首先要知道这个数字的位数,知道这个数字的最高位是那个单位,再整除一个这个单位最小的数即得到这个数字的最高位数的数即:321这个数,最高位数字单位是百位则321/100得到最高位数字3。在得到这个数字的最高位数字后原数字对这个取余的方法扔掉最高位即:321扔掉最高位 321%100得21

void PrintOrder(int n)                         //一个数字从最高位开始循序输出

{
int count = Figure(n);                //调用上面的计数器函数,得到这个数字的位数
int power = 1;                           //定义整形数字,这个数字表示这个数字最高位单位最小的数
for(int i = 1;i < count;i++)         //循环的次数是这个数字的位数
{
power *= 10;                     //每次循环得到这个数字最高位单位最小的数,即每次循环给这个power乘10

do
{
printf("%d ",n/power);       //通过给这个数字整除这个数字相同位数的最小数字得到他的最高位,每次循环输出这                                                             个数字的最高位
n %= power;                     //这个数字对power取余扔掉最高位,进而继续循环得到下一位的数字
power /= 10;                     //n每次扔掉最高位后power也要相应的减少一位
}while(n != 0);                           //循环终点即n为0时,
printf("\n");

}


一个数字从个位开始逆序输出问题

利用循环每次这个数字对10取余得到最小位数的数,然后再整除10扔掉最低位数继续循环得到下一位数。循环终点即对这个数除10等于0时即证明这个数是他的最高位数

void PrintReverse(int n)                  //一个数字从个位开始逆序输出
{
do
{
printf("%d ",n % 10);      //对这个数对10取余从而得到个位,在循环中打印一次循环打印一次
n /= 10;                        //每次循环得到个位数字之后整除10,相当于扔到个位,然后继续循环取最小位数的数字
}while(n != 0);                       //判断循环的终点即最后数字为0时
printf("\n");
}


求出一个数字是几位数问题

先定义一个计数器,利用循环,每次循环对这个数字整除10则此数字减少一位,每次减少后给计数器加一,直到整除后这个数字为0则证明计算完了这个数字的所有位数

int Figure(int n)                     //求出一个数字是几位数
{
int count = 0;                //先定义一个计数器
do
{
count++;              //每次循环计数器加一
n /=10;                 //每次循环给这个数除10,每除一次10这个数字就少一位
}while(n != 0);               //循环的终点当这个数为0时证明数字被全部除尽
return count;                //返回计数器的值即这个数字的位数

}


int main()
{
PrintReverse(123456);
PrintOrder(123456);
printf("是一个%d位数字\n",Figure(123456));
return 0;

}

结果为6 5 4 3 2 1 

         1 2 3 4 5 6

         是一个6位数字

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将一个五位数逆序输出,可以使用C语言编写一个程序来实现。首先,我们需要从用户那里获取一个五位数。接下来,我们将使用除法和取余操作符来分离每一位数字,并以逆序的方式打印出来。 具体步骤如下: 1. 首先,声明一个整型变量number来接收用户输入的五位数。可以使用scanf函数来实现,如下所示: ```c int number; scanf("%d", &number); ``` 2. 接下来,我们使用取余操作符取出number的个位数字,并将其打印出来。之后,将number除以10,将其变为四位数,以类似的方式继续取得并打印出十位、百位、千位和万位数字。 ```c int digit; digit = number % 10; printf("%d", digit); number /= 10; digit = number % 10; printf("%d", digit); number /= 10; digit = number % 10; printf("%d", digit); number /= 10; digit = number % 10; printf("%d", digit); number /= 10; digit = number % 10; printf("%d", digit); ``` 3. 最后,我们可以输出一个换行符,以美化输出。 ```c printf("\n"); ``` 最终的完整代码如下: ```c #include <stdio.h> int main() { int number; scanf("%d", &number); int digit; digit = number % 10; printf("%d", digit); number /= 10; digit = number % 10; printf("%d", digit); number /= 10; digit = number % 10; printf("%d", digit); number /= 10; digit = number % 10; printf("%d", digit); number /= 10; digit = number % 10; printf("%d", digit); printf("\n"); return 0; } ``` 这样,当用户输入一个五位数后,程序将会以逆序的方式输出位数字。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值