逆序数
Description
输入一个任意整数(int型),输出其位数并逆序输出该数。
Input
输入一个任意整数(int型)
Output
输出其位数及逆序数
Sample Input
12345
-123
100
Sample Output
54321 5
-321 3
1 3
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc, char *argv[]) {
int n;
while(scanf("%d",&n)!=EOF){
int a[20]; int i;
//数组初始化
for(i=0;i<20;i++){
a[i]=0;
}
int m=n;//n值拷贝
//处理0的情况
if(n==0) printf("0 1\n");
else{
int sum=0;
int count=0;
//分离数字
while(n!=0){
a[count]=n%10;
n/=10;
count++;
}
//倒序输出
int k=0;//记录是否输出第一个非零数
if(m>0){
//输出正数
for(i=0;i<count;i++){
if(a[i]!=0&&k==0||k==1){
printf("%d",a[i]);
k=1;
}
}
}else{
//输出负数
printf("-");
for(i=0;i<count;i++){
if(a[i]!=0&&k==0||k==1){
printf("%d",abs(a[i]));
k=1;
}
}
}
printf(" %d\n",count);
}
}
return 0;
}