C语言 正逆序输出数字(经典题目优化解答版)

输入一个数字
①求出该数是几位数
②正序输出该数
③逆序输出该数
效果图
C语言 正逆序输出数字(经典题目优化解答版)_第1张图片
代码

#include
#include
#include

#define gap printf("\n")

int for_digit(int num);
void sequence(int _num,int _digit);
void reversal(int num_,int digit_);

int main(int argc,char const *argv[])
{
    int x,digit;
    scanf("%d",&x);
    printf("digit is %d",digit=for_digit(x));
    gap;
    sequence(x,digit);
    gap;
    reversal(x,digit);
    gap;
    system("pause");
    return 0;
}

int for_digit(int num)
{
    int digit=0;
    while(num>0)
    {
        digit++;
        num/=10;
    }
    return digit;
}

void sequence(int _num,int _digit)
{
    int sequence_num;
    do{
        _digit--;
        sequence_num=_num/(int)pow(10,_digit);
        printf("%d ",sequence_num);
        _num%=(int)pow(10,_digit);
    }while(_digit>0);
}


void reversal(int num_,int digit_)
{
    int reversal_num;
    for(;digit_>0;digit_--,num_/=10)
    {
        reversal_num=num_%10;
        printf("%d ",reversal_num);
    }
}

你可能感兴趣的:(笔记,C语言,c语言,算法)