您的位置:首页 > 编程语言 > C语言/C++

【C语言】输入一个不多于5位的正整数,要求:(1)输出它是几位数,(2)按逆序输出各位数字,(3)按顺序输出各位数字

2018-03-27 22:33 801 查看
//编程实现:输入一个不多于5位的正整数,要求:(1)输出它是几位数,(2)按逆序输出各位数字,(3)按顺序输出各位数字
#include <stdio.h>
#include <math.h>
int GetFigures(int n)//输出它是几位数
{
int flg= 0;//用来标记数字的位数
//方法一 解决输入"0"
do
{
n /= 10;
flg++;
}while(n != 0);//这里用do……while 为了防止输入"0"的情况
return flg;
//方法二
/*if (n == 0)
{
return flg+1;
}
else
{
while (n != 0)
{
n /= 10;
flg++;
}
return flg;
}*/
}
void PrintReverse(int n) //逆序输出数字
{
int tmp;

if(n<0)
{
n=-n;
printf("-");//为了求负数的逆序输出美观
}
do   //这里用 do...while 作用同上
{
tmp= n%10;//得个位
n /= 10;//丢个位
printf("%d",tmp);
}while (n!= 0);
printf("\n");
}
void PrintOrder(int n)//顺序输出数字
{
int i=GetFigures(n);  //这里调用GetFigures()函数
int tmp;
if (n<0)
{
n=-n;
printf("-");
}
//方法一
for(; i>0 ; i--)
{
tmp = n/(int)pow(10.0,i-1);  //得高位
n %= (int)pow(10.0,i-1); //丢高位
printf("%d ",tmp);
}
//方法二
/*
int power= 1; 
//此处替换pow(10.0,i-1)
for(int t=0 ; t<i-1 ; t++)
{
power *= 10;
}
do
{
tmp = n/power;
n %= power;
power /= 10;
printf("%d ",tmp);
}while(n != 0);
*/
printf("\n");
}
int main()
{
//printf("%d\n",GetFigures(12345));  //多测几次,尤其是特殊值
//printf("%d\n",GetFigures(0));
//printf("%d\n",GetFigures(-12345));
//PrintReverse(12345);
//PrintReverse(0);
//PrintReverse(-12345);
//PrintOrder(12345);
//PrintOrder(0);
//PrintOrder(-12345);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐