数字反转
题目链接
#include <stdio.h>
int main() {
int n;
int a=10;
int b=1;
int sum = 0;
int count=0;
int pd;//该参数用来判断n的正负
scanf("%d",&n);//搜集n的值
if(n<0){
n = -n;
pd =-1;//这里是判断n的正负以便于后面的操作
}
int t=n;
while(t>0){
t=t/10;
count++;//这个循环判断输入的数有多少位
}
//printf("%d\n",count);
for(int j=1;j<=count-1;j++){
b=b*10;//这个循环得出最高位数需要乘以几百
}
//printf("%d\n",b);
for(int i=1;i<=count;i++){
sum=sum+(n%a)*b;//第一次循环的到最高位第二次得到第二位以此类推
n= n/10;//去掉最后一位这时最后一位已经被用掉了,为接下来的循环做准备
b = b/10;//的到次位的b,为后面的循环做准备;
}
if(pd==-1){
sum = -sum;//这里是与前面判断正负的那个变量相呼应的地方,得到负数的正确结果
}
printf("%d",sum);
/*
123
3*100+2*10+1
1234
4*1000+3*100+2*10+1
*/
return 0;
}
标签:count,10,数字,int,反转,printf
From: https://www.cnblogs.com/harper886/p/17359990.html