```cpp
#include <iostream>
using namespace std;
int main()
{
char *a=new char;
int n=0;
for(;(a[n]=cin.get())!='\n';n++){ };//输入
int k=1,l=0;
for(int i=0;i<n;i++){//选择类型
if(a[i]=='.')
k=2,l=i;
else if (a[i]=='/')
k=3,l=i;
else if (a[i]=='%')
k=4;
};
int c=0;
switch(k){//分类反转
case 1:
for(int i=n-1;i>-1;i--){
if(c==1||a[i]!='0')//去掉开头的0
{cout<<a[i];
c=1;};
};
break;
case 2:
for(int i=l-1;i>-1;i--){
if(c==1||a[i]!='0')
{cout<<a[i];
c=1;};
};
cout<<a[l];
c=0;
for(int i=n-1;i>l;i--){
if(c==1||a[i]!='0')
{cout<<a[i];
c=1;};
};
break;
case 3:
for(int i=l-1;i>-1;i--){
if(c==1||a[i]!='0')
{cout<<a[i];
c=1;};
};
cout<<a[l];
c=0;
for(int i=n-1;i>l;i--){
if(c==1||a[i]!='0')
{cout<<a[i];
c=1;};
};
break;
case 4:
for(int i=n-2;i>-1;i--){
if(c==1||a[i]!='0')
{cout<<a[i];
c=1;};
};
cout<<a[n-1];
break;
}
delete a;
return 0;
}
```
by 逃税奸商 @ 2019-01-27 20:21:36
抱歉渣渣第一次提问。。。
代码重贴了一下orz
by 逃税奸商 @ 2019-01-27 20:22:27
可能是数据的锅。没回车,你就结束不了输入就RE了。
改成这样就行了:
```cpp
cin >> a;//直接cin就完事了
int n=strlen(a);//量个长度就好了
```
注意还得引用cstring库
```cpp
#include <cstring>
```
才有**strlen()**函数
--第一次回复一个人的问题
by liuyuxuan @ 2019-01-31 22:38:36