NOIP2011题:数字反转
如:123————321
-38————-83
这题我的思路是先判断是否为负数,再把后面的数字反转,如果前面有零,就进位
但错误不少,请大神们指导
#include <iostream>
#include <cstring>
using namespace std;
//const int a = 11;
//char str[a]; //定义字符串
int main()
{
char str[111];
gets(str);
int n = strlen(str);
char str1[n+1];
for(int i=1;i<=n;++i)
{
int m=str[i-1];
str1[i]=m; //输入字符串
}
if(str[1]=='-')
{
str1[0]='-';
for(int s=1;s<=n;++s)
str1[s]=str1[s+1];
}
for(int e=1;e<=n/2;++e)
{
int t = str1[--n+1];
int y = str1[e];
str1[e] = t;
str1[--n+1] = y;
} //数组反转
int d=1, g=2;
while(str1[++d]==0&&str1[++g]!=0)
str1[d]=str1[g];
puts(str1);
return 0;
}