自己机子上明明是对的啊!!大佬们,球球了!帮看一下吧,谢谢!
查看原帖
自己机子上明明是对的啊!!大佬们,球球了!帮看一下吧,谢谢!
666175
HLlll楼主2022/10/1 23:16
#include<iostream>
#include<cstdio>

using namespace std;
int p=0,len=1,k1=0,k2=0,r1=1,r2=0;
char a[100];
char b[100];

void turnover(int sta, int end){
	for(int i=end,j=0;i>=sta;i--) b[++j]=a[i];
	for(int i=sta,j=0;i<=end;i++) a[i]=b[++j];
}

int main(){
	char s;
	while(1){
		s=getchar();
		if(s==EOF) break;
		else{
			a[len++]=s;
			if(s=='.') p=1;//小数
			else if(s=='/') p=2;//分数;
			else if(s=='%') p=3;//百分数	
			if(p==0) k1++;
			else k2++;	
		}
	}
	len-=2;
	//cout<<len<<endl;
	if(p==1){ 
		turnover(1,k1);
		turnover(k1+2,len);
	}
	else if(p==2){
		turnover(1,k1);
		turnover(k1+2,len);
	}
	else if(p==3){
		turnover(1,k1);
		turnover(k1+2,len);
	}
	else{
		turnover(1,len);
	}
	while(a[r1]=='0') r1++;
	while(a[len-r2]=='0') r2++;
	if(a[r1]=='.' || a[r1]=='/' || a[r1]=='%') cout<<'0';
	for(int i=r1;i<=len-r2;i++){
		cout<<a[i];
	}
	if(a[len-r2]=='.' || a[len-r2]=='/' || a[len-r2]=='%') cout<<'0';
	cout<<endl;
	return 0;
}


第一个测试点就错了,可为什么我在自己终端上输出是正确的呢? 大佬们,求助!!!!! 谢谢!!!

2022/10/1 23:16
加载中...