c语言如何逆序输出
①要求
将正整数或负整数
从个位开始逆序输出。
涉及三个变量,
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
C语言逆序输出
以下是一个简单的C语言程序,用于逆序输出一个整数:
c
#include <stdio.h>
void reverse(int num) {
int reversedNum = 0;
while (num != 0) {
int remainder = num % 10;
reversedNum = reversedNum * 10 + remainder;
num /= 10;
}
printf("逆序输出结果:%d\n", reversedNum);
}
int main() {
int num = 12345;
reverse(num);
return 0;
}
输出结果:
逆序输出结果:54321
该程序通过一个while循环,将一个整数的各位数位逆序排列,并输出结果。具体来说,程序首先将一个变量reversedNum初始化为0,然后不断地从原数num的最低位(即个位)取出余数,并将其加入到reversedNum的末尾,直到num被除以10后变为0为止。最后,程序在控制台输出逆序后的结果。
逆序输出
将一个从键盘输入的整数存放到一个数组中,通过程序的运行按照数组中的逆序输出该整数,利用递归的方法解决问题。算法思想设计函数实现数据的逆序存放,设定形参数组接收实参数组的地址,来存储数据的每一位。
函数体采用递归的方式解决问题,因此考虑递归进行的条件。例如,把数据 n 存放到数组 s 中,若 n 是一位数,则存放 n 到数组中;若 n 不是一位数,则存放 n/10 到数组中。