显然你 `if(n[i]=='0'&&n[i-1]!='0'&&n[i+1]!='0'&&i!=n.size()-1)` 是不行的,比如所 `1002`,你的输出是 `21`,但应该是 `2001`,而且输出的时候比如 `21000` 你应该定义一个变量如果他输出了非`0`的数字了,那你就可以输出`0`了,我把你的改了改
```cpp
#include<iostream>
#include<string>
using namespace std;
int main(){
string n;
cin>>n;
if(n[0]=='-'){//对于负数的输出
cout<<'-';
int res = 0;
for(int i=n.size()-1;i>0;i--){
if(n[i]=='0' && res){
continue;
}
else{
res++;
cout<<n[i];
}
}
}
else if(n[0]=='0'){//对于0的输出
cout<<'0'<<endl;
return 0;
}
else{//对于正数的输出
int res = 0;
for(int i=n.size()-1;i>=0;i--){
if(n[i]=='0'&&res){
continue;
}
else{
res++;
cout<<n[i];
}
}
}
return 0;
}
```
by WA_QJ @ 2024-01-10 14:04:32
@EgoStrip,代码贴错了,应该是这个
```cpp
#include<iostream>
#include<string>
using namespace std;
int main(){
string n;
cin>>n;
if(n[0]=='-'){//对于负数的输出
cout<<'-';
int res = 0;
for(int i=n.size()-1;i>0;i--){
if(n[i]=='0' && !res){
continue;
}
else{
res++;
cout<<n[i];
}
}
}
else if(n[0]=='0'){//对于0的输出
cout<<'0'<<endl;
return 0;
}
else{//对于正数的输出
int res = 0;
for(int i=n.size()-1;i>=0;i--){
if(n[i]=='0'&&!res){
continue;
}
else{
res++;
cout<<n[i];
}
}
}
return 0;
}
```
by WA_QJ @ 2024-01-10 14:06:38
@[EgoStrip](/user/964081)
by WA_QJ @ 2024-01-10 14:07:01
@[WA_QJ](/user/938933) 感谢感谢
by EgoStrip @ 2024-01-12 18:30:15