@[lucy2012](/user/1252442) 第二个注释后面的那个if的括号后多打了一个分号
by dontwannacry @ 2024-02-22 15:37:13
@[dontwannacry](/user/564225) 从55升到了65
by lucy2012 @ 2024-02-22 15:39:08
是一个问题
by lucy2012 @ 2024-02-22 15:39:41
@[lucy2012](/user/1252442) 是这样
by dontwannacry @ 2024-02-22 15:39:43
@[lucy2012](/user/1252442) 然后就是小数判0有问题
by dontwannacry @ 2024-02-22 15:41:07
@[lucy2012](/user/1252442) 之前写的时候我是一个字符一个字符判过去的,建议试试
by dontwannacry @ 2024-02-22 15:44:45
@[lucy2012](/user/1252442) 因为直接操作字符串的话需要比较熟悉string的操作的
by dontwannacry @ 2024-02-22 15:47:51
@[dontwannacry](/user/564225) ok,我看看
by lucy2012 @ 2024-02-22 15:49:46
AC代码@[lucy2012](/user/1252442)
```cpp
#include<bits/stdc++.h>
using namespace std;
string c;
int z[123456],h[123456],fz[123465],fh[123456];
int mid,flagz,flagh;
int main()
{
cin>>c;
int len=c.size();
if(len==1)
{
cout<<c;
return 0;
}
for(int i=0;i<len;i++)
{
if(c[i]<'0'||c[i]>'9')
mid=i;
}
if(mid!=0)
{
for(int i=0;i<mid;i++)
z[i]=c[i]-'0';
for(int k=0;k<mid;k++)
if(z[k]!=0)
flagz=1;
if(flagz!=0)
{
for(int j=mid-1;j>=0;j--)
{
if(z[j]!=0)
break;
else fz[j]=1;
}
for(int j=mid-1;j>=0;j--)
{
if(fz[j]==0)
printf("%d",z[j]);
}
}
else printf("0");
cout<<c[mid];
if(mid==len-1)
return 0;
for(int i=mid+1;i<len;i++)
h[i]=c[i]-'0';
for(int q=mid+1;q<len;q++)
if(h[q]!=0)
flagh=1;
if(flagh!=0)
{
for(int s=len-1;s>=mid+1;s--)
{
if(h[s]!=0)
break;
else fh[s]=1;
}
for(int s=mid+1;s<len;s++)
{
if(h[s]!=0)
break;
else mid++;
}
for(int s=len-1;s>=mid+1;s--)
{
if(fh[s]==0)
printf("%d",h[s]);
}
}
else printf("0");
}
else
{
for(int i=0;i<len;i++)
z[len-i-1]=c[i]-'0';
for(int j=0;j<len;j++)
{
if(z[j]!=0)
break;
else fz[j]=1;
}
for(int j=0;j<len;j++)
{
if(fz[j]==0)
printf("%d",z[j]);
}
}
return 0;
}
``````
by 2023hkm @ 2024-02-22 15:53:14
@[2023hkm](/user/1240717) 虽然但是我觉得直接粘AC代码是一种不负责任
by dontwannacry @ 2024-02-22 16:12:40