C语言 任意读入一个整数,输出其反序数。

解释一下这个程序,没看懂
#include<stdio.h>
main()
{int a,b,c,i;
printf("输入整数: ");
scanf("%d",&a);
b=0;
c=1;
if(a<=0)
{a=-a;c=-1;}
while(a!=0)
{i=a%10;
b=b*10+i;
a=a/10;
}
b=c*b;
printf("反序数: %d\n",b);
}

例如读入 123 ,反序输出为321
每次除10取余数,然后将结果拼接在一起。
设求得的最终结果为s = 0 另a = 123
1)s = s *10 + a %10 = 3
a = a / 10 = 12
2) s = s*10 + a%10 = 3*10 + 2 = 32;
a = a / 10 = 1;
3) s = s*10 + a%10 = 32*10+1 = 321
a = a / 10 = 0;
反转结果为321
程序中c表示符号位,如果为负 用 c = - 1 正 c = 1
最后,结果乘以符号c 即可。
温馨提示:内容为网友见解,仅供参考
无其他回答

C语言 任意读入一个整数,输出其反序数。
程序中c表示符号位,如果为负 用 c = - 1 正 c = 1 最后,结果乘以符号c 即可。

c语言:任意输入一整数,编程输出其反序数
include<stdio.h>main(){int n,s=0;scanf("%d",&n);while(n){s*=10;s+=n%10;n\/=10;}printf("%d",s);}您好,很高兴为您解答,流星不死为您答疑解惑 如果本题还有不懂的地方请追问,望采纳我的回答。祝楼主学习进步。上面的代码可以直接复制到编译器里,带换行。

输入一个正整数输出其反序数,c语言
include<stdlib.h> include<string.h> void main(){ int ipnumber,i;char string[100];printf("请输入要进行反序的正整数:");scanf("%d",&ipnumber);itoa(ipnumber,string,10);i=strlen(string);printf("\\n反序后的正整数为:");while(i>=0)printf("%c",string[--i]);printf("\\n...

c语言中如何实现输入一个整数实现倒序输出
1、新建一个工程和.c文件,输入头文件和主函数 2、声明被调用的函数,定义变量类型 3、输入整数 4、用一个if语句去判断整数是否为负数,若为负数则用putchar函数输出一个负号 5、调用一个函数 6、定义函数的返回类型和形参类型 7、通过if语句判断该数是否仅剩一位数,若不是则执行else语句 8、通过...

c语言怎么按输入值正序或倒序输出数据?
定义一个整数类型的输入,然后让它正序输出,倒序输出相信是很多C语言初学入门一定会遇到的经典题目,下面就是我对整数的正序和倒序输出一点小小的总结.1. 反序(倒序)输出 反序输出常用的思路就是按位取余,把取出来的值进行循环保存。int main(){ int i=12345; \/\/定义一个12345的整数 int temp=0...

C语言怎样输入一个数,将其各位数字反序输出
int main(){int n;scanf("%d",&n);while(n>0){printf("%d",n%10);n=n\/10;}return 0;}

C语言程序(输入一个数,判断它是几位数,然后反序输出,)!急用、、必须是...
include <stdio.h> void main(){ void num(int a);long a;scanf("%ld",&a);num( a);}void num(int a){ long b=0;int i;for(i=0;a>0;a\/=10,i++){ b=(b*10)+a%10;} printf("%d位的,逆序数=%ld\\n",i,b);} ...

C语言求一个整数的反序数
其实整个程序非常简单,感觉你可能是想多了,不用求原来的数字到底是几位,直接用取余数乘10的方法就行了。程序如下:include <stdio.h>#include <math.h> int main(){int n,b;scanf("%d", &n);int d = 0;while (n){b = n % 10;d = d * 10 + b;n = n \/ 10;}printf("%d...

求一个C语言程序:输入正整数,要求以相反数顺序输出该数求详解
\/*求一个C语言程序:输入正整数,要求以相反数顺序输出该数。如输入1234,输出4321.*\/ include "stdio.h"void main(){ int n,m,r;printf("请输入1个正整数:");scanf("%d",&n);m=n;printf("\\n正整数%d反序输出为:",n);while(m){ r=m%10;printf("%d",r);m=m\/10;} } ...

C语言编写--整数的反序数
void main( ){ int forder(int n);int n,i,temp,f;f=1;scanf("%d",&n);while(n<1000 || n>9999)scanf("%d",&n);temp=forder(n);for(i=2;i<20;i++){ if (n*i==temp)printf("K=%d,NUM=%d\\n",i,temp),f=0;} if(f)printf("No output");} int forder(int n)...

相似回答