求解答,测试点本地过的,没有问题,但就是显示测试点错误不AC
查看原帖
求解答,测试点本地过的,没有问题,但就是显示测试点错误不AC
607150
freegt楼主2023/6/13 19:25

求解答,为什么本地都是过的,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()求出来长度老是有问题,为什么啊

2023/6/13 19:25
加载中...