一、功能需求
谭浩强教授的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);
}