【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;
}
#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;
}
相关文章推荐
- 【c语言】给一个不多于5位的正整数,要求: 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字
- 给一个不多于5位的正整数,要求:1、求出它是几位数;2、分别打印出每一位数字; 3、按逆序打印出各位数字,例如原数为321,应输出123。
- 给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123
- 给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。 【注意: 如果输入的大于了5位数要求用户重新输入】
- 给一个不多于5位的整数,要求(1)求出他是几位数(2)分别输出每一位数字(3)按逆序输出各位数字,例如原数为321,应输出123
- 给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123
- 习题 4.9 给一个不多于5位的正整数,要求:1. 求出它是几位数;2. 分别输出每一位数字;3. 按逆序输出各位数字,例如原数为321,应输出123。
- 输入一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
- 输入一个不多于5位的正整数,判断它是几位数,并逆序输出各位数字
- 给一个不多于5位的正整数,要求:①求出它是几位数;②分别输出每一位数;③按逆序输出各位数字
- (c++)给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123
- 输入一个不多于5位的正整数。1、求出它是几位数;2、分别输出每一位数字;3、按逆序输出各位数字。
- c语言 给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
- 给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123
- 给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123
- 给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字
- 给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
- 给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字
- 给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
- 给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。