#include <iostream>
#include <string>
using namespace std;
int main()
{
string s;
char qian[50];
char hou[50];
int a=0,b=0,c=0,d=0;
getline(cin,s);
if(s[s.size()-1]=='%')
{
for(int i=s.size()-2;i>=0;i--)
{
if(s[i]=='0'&&c==0)
{
continue;
}
else c=1;
cout<<s[i];
}
if(c==0)
{
cout<<'0';
}
cout<<'%';
}
else
{
for(int i=0;s[i]!='.' && s[i]!='/' && i<s.size();i++)
{
qian[i]=s[i];
a++;
}
for(int i=a+1;i<s.size();i++)
{
if(s[i]=='0'&&d==0&&s[a]=='.')
{
continue;
}
else d=1;
hou[b]=s[i];
b++;
}
for(int i=a-1;i>=0;i--)
{
if(qian[i]=='0'&&c==0)
{
continue;
}
else c=1;
cout<<qian[i];
}
if(c==0)
{
cout<<'0';
}
//----
cout<<s[a];
//----
if(d==0 && s[a]=='.')
{
cout<<'0';
}
else
{
c=0;
for(int i=b-1;i>=0;i--)
{
if(hou[i]=='0' && c==0 && s[a]=='/')
{
continue;
}
else c=1;
cout<<hou[i];
}
}
//----
}
return 0;
}
为什么把“qian”这个数组改成string类型 会RE第三个点呢?(如果进行for循环是不是不能这样:qian[i]=s[i]【即qian这个数组为空的情况下逐个把s[i]的值赋给qian是否会RE?为什么???】 )