C语言 正序/逆序输出一个数(长度不一定)

一、功能需求

谭浩强教授的C语言教材的练习题,要求 将用户输入的一个数逆序输出/正序输出:
看了参考答案感觉太麻烦了,就自己写了一版,仅供参考.

二、解决办法

代码如下,仅供参考:

#include<stdio.h>
int get_num_length(int length,int x);
int main()
{   int x,t,i=0,length;
    puts("input a number:");
    scanf("%d",&x);
    length=get_num_length(0,x);//获取用户输入的数据长度
    
    int arr[length+1];//按用户输入的长度定义一个数组
    printf("%d的逆序输出为:\n",x);

    //数字拆分
    while(x)
    {   t=x%10;//获取最后一位
        arr[i++]=t;//将每次获取到的最后一位存放进数组保存
        x=x/10;//每次缩小一位
    }
    for(i=0; i<length; i++)
        printf("%d ",arr[i]);

    puts("\n其正序输出为:");
    for(i=length-1; i>=0; i--)
        printf("%d ",arr[i]);

}
//获取一个数的位数
int get_num_length(int length,int x)
{
    while(x) return get_num_length(++length,x/10);
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值