求解答,为什么本地都是过的,AC不了。错误测试点在本地也都是OK的,实在找不到问题了
#include<bits/stdc++.h>
using namespace std;
int zh2(char s[],int p){
int n=p-1;
while(s[n]=='0'&&n!=0) {
n--;
}
int j=0;
while(s[j]=='0'&&j!=n) j++;
for(int i=n;i>=j;i--){
cout<<s[i];
}
}
int zh1(char s[]){
int n=strlen(s)-1;
while(s[n]=='0'&&n!=0) {
n--;
}
for(int i=n;i>=0;i--){
cout<<s[i];
}
}
int zh(string s){
int n=s.length()-1;
while(s[n]=='0'&&n!=0) {
n--;
}
for(int i=n;i>=0;i--){
cout<<s[i];
}
}
int main(){
string s;
char s1[20],s2[20];
cin>>s;
if(s[0]=='-') cout<<"-";
int flag=1,a1,a2,a3;
for(int i=0;i<s.length();i++){
if(s[i]=='.'){
flag=2;
a1=i;
break;
}
else if(s[i]=='/'){
flag=3;
a2=i;
break;
}
else if(s[i]=='%'){
flag=4;
a3=i;
break;
}
else flag=1;
}
//cout<<flag<<" ";
if(flag==1){
zh(s);
}
if(flag==2){
for(int i=0;i<a1;i++){
s1[i]=s[i];
}
int p=0;
for(int i=a1+1;i<s.length();i++){
s2[p]=s[i];
p++;
}
zh1(s1);
cout<<".";
zh2(s2,p);
}
if(flag==3){
for(int i=0;i<a2;i++){
s1[i]=s[i];
}
int p=0;
for(int i=a2+1;i<s.length();i++){
s2[p]=s[i];
p++;
}
zh1(s1);
cout<<"/";
zh2(s2,p);
}
if(flag==4){
for(int i=0;i<a3;i++){
s1[i]=s[i];1
}
zh1(s1);
cout<<"%";
}
return 0;
}
里面的p我是用来统计字符数组长度的,用strlen()求出来长度老是有问题,为什么啊