![](https://i-blog.csdnimg.cn/blog_migrate/4e638a11d9444d7e5a1b0bc87685b24f.png)
策略:首先这是一道初中题,简单的旋转放入数组,不需太多技巧,粗暴解决。但值得注意的是负号的处理和末尾零的处理,负号可以先省去,结尾再添上,末尾零在倒转后在略去,不多说,上码。
1 #include <stdio.h> 2 int main() 3 { 4 int n,i=1,a[100]; 5 int t; 6 int x=0; 7 //freopen("reverse.in","r",stdin); 8 //freopen("reverse.out","w",stdout); 9 scanf("%d",&n); 10 if(n==0) printf("0"); 11 else 12 { 13 if(n<0) //若是负数,变为正数,并标记 14 { 15 n=-n; 16 x=1; 17 } 18 a[0]=0; //a[0]标记位数 19 while(1) //进入循环从末尾换到数组前位,逐个处理,直到n为0,退出循环 20 { 21 t=n%10; 22 n=n/10; 23 a[i]=t; 24 a[0]=a[0]+1; 25 i++; 26 if(n==0) 27 break; 28 } 29 while(1) 30 { 31 if(a[1]==0) 32 { 33 for(i=1;i<a[0];i++) //若转换后前位数为零,将整个数组向前挪一位 34 { 35 a[i]=a[i+1]; 36 } 37 a[0]=a[0]-1; 38 } 39 else break; 40 } 41 if(x==1) printf("-"); 42 for(i=1;i<=a[0];i++) 43 { 44 printf("%d",a[i]); 45 } 46 } 47 return 0; 48 }