所在的位置: C++ >> C++市场 >> C语言逆序输出

C语言逆序输出

①要求

将正整数或负整数

从个位开始逆序输出。

涉及三个变量,

n是原数,

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

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

②定义函数

#includestdio.h

intfun(intn)

{intm,y};

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

y=0;

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

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

if(n=0)m=n;

elsem=-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;

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

returny;

}

③主函数

{intm1,m2;

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

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

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

return0;

}

④思路整理

1.输入原数:n

2.求绝对值:m=

n

3.提取个位:m%10

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

5.高位降位:m/10

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




转载请注明:http://www.aierlanlan.com/rzdk/4484.html

  • 上一篇文章:
  •   
  • 下一篇文章: