题解 P1307 【数字反转】

· · 题解

此题最重要的地方是(1)单独判断加负号;(2)注意不能用if(a[b]!='0') printf("%c",a[b]);判断,这样会把数字中间的0吞掉!!!

另外,本题似乎没有为0的样例(题目中特地提到了),即使AC了,也需注意。

#include<stdio.h>
#include<string.h>
char a[11]={};
int b;
int main()
{
  gets(a);
  if(strlen(a)==1&&a[0]=='0') printf("0");
    else 
    {
      if(a[0]=='-') {a[0]='\n';printf("-");}
      for(b=strlen(a)-1;b>=0;b--)
        if(a[b]!='0') break;
      for(;b>=0;b--) printf("%c",a[b]);
    }
  return 0;
}