C语言中怎么把一个任意的数倒序输出.?知道的请告诉一下,谢谢.

Python018

C语言中怎么把一个任意的数倒序输出.?知道的请告诉一下,谢谢.,第1张

需要准备的材料分别有:电脑、C语言编译器。

1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。

2、在test.cpp文件中,输入C语言代码:。

int a = 100

while(a != 0) {

int b = a % 10

if (b >0)

printf("%d", b)

a /= 10

}

3、编译器运行test.cpp文件,此时成功将数进行了逆序输出,例如100输出了1。

参考代码:

//******************************************************************************

//

逆序输出

//******************************************************************************

#include<stdio.h>

#include

<math.h>

int

main()

{

long

x,

a,

b,

i=0

double

c=0

//pow的用法:

double

pow(

double

base,

double

exp

)

//

clrscr()

//

i

=

0

//

c

=

0

printf("please

input

a

score!\n")

scanf("%ld",

&x)

a

=

x

b

=

x

do

{

a

=

a

/

10

i++

}

while(a

!=

0)

printf("the

wei

of

the

number

is\t%ld\n",

i)

i--

//因为用pow,i需减一

do

{

a=

b

%

10

//用a来保存求余

c

+=

a

*

pow(10,

i)

b

=

b

/

10

i--

}

while(i

>=0)

printf("the

answer

is

%.0lf\n",

c)

}

//******************************************************************************

//因为只是倒序输出,所以不必转换,直接求余输出即可,代码如下

//******************************************************************************

#include<stdio.h>

int

main()

{

int

n

while(scanf("%d",&n)!=EOF)

//多项测试

Ctrl

+

Z

结束输入

{

while(n)

{

printf("%d",n%10)

n/=10

}

printf("\n")

}

}

//******************************************************************************

//逆序输出

再来个比较简洁的

//******************************************************************************

#include<stdio.h>

int

main()

{

int

n

//要求n为正整数

for(scanf("%d",

&n)

n

>

0

&&

printf("%d",

n

%

10)

n

/=

10)

}

①要求

将正整数或负整数

个位开始逆序输出。

涉及三个变量,

n是原数,

m用于储存提取的个位数,

y用于储存重新组合的逆序数。

②定义函数

#include<stdio.h>

int fun(int n)

{int m,y} ;

/*给y赋初值,组合数在组合之前为0。*/

y=0

/*给m赋初值,将原数n的绝对值赋值给m。

我试了,也可以直接m=n,删除y=(n>=0)?y:-y,结果一样有负号,绝对值具体还有什么用,等待大神解答。*/

if(n>=0)m=n

else m=-n

/*当m不为0时,循环继续。

当m为0时,即提取到只剩一位数时,m=m/10=0,循环结束。*/

while(m!=0)

{y=y*10+m%10

/*提取个位:m%10。

已经提取个位升为十位:y乘10。

逆序组合数:y。*/

m=m/10}

/*降位提取个位:m/10

不断除10取整,屏蔽个位;

不断将十位降为个位,再提取;

直到只剩一位数,循环结束。*/

y=(n>=0)?y:-y

/*将负数的负号恢复。*/

return y

}

③主函数

{int m1,m2

scanf("%d%d",&m1,&m2)

printf("%d的逆序是%d\t",m1,fun(m1))

printf("%d的逆序是%d\t",m2,fun(m2))

return 0

}

④思路整理

1.输入原数:n

2.求绝对值:m=|n|

3.提取个位:m%10

4.逆序组合:y=y*10+m%10

5.高位降位:m/10

6.恢复负号:y=(n>=0)?y:-y