30pts,求调
查看原帖
30pts,求调
987530
_th_tw_on_楼主2024/4/13 07:41

记录

#include<bits/stdc++.h>
using namespace std;
bool pd(char a){
	if(a>='0'&&a<='9')return 1;
	return 0;
}
int n;
bool v;
string a,in,out,A,B,C;
int main(){
	getline(cin,a);
	if(a.size()==1){
		if(a=="1")n=1;
	}else{
		//(A数.B  C)或(A.B数  C)
		for(int i=0;i<a.size();i++){//取开始编号 
			if(pd(a[i])){
				n=n*10+a[i]-'0';
			}
		}
		int ii;
		for(ii=0;;ii++)if(a[ii]=='.')break;//找'.'位置 
		if(a[ii-1]>='0'&&a[ii-1]<='9'){//编号在主名后(A数.B  C)
			for(int i=0;;i++){
				if(pd(a[i]))break;
				A+=a[i];
			}
			int i;
			for(i=ii+1;;i++){
				if(a[i]==' ')break;
				B+=a[i];
			}
			for(int j=i+1;j<a.size();j++){
				C+=a[j];
			}
		}else{//编号在拓展名后(A.B数  C)
			v=1;
			for(int i=0;i<ii;i++){
				A+=a[i];
			}
			int i,j;
			for(i=ii+1;;i++){
				if(pd(a[i]))break;
				B+=a[i];
			}
			for(j=i;;j++){
				if(a[j]==' ')break;
				n=n*10+a[j]-'0';
			}
			for(int k=j+1;k<a.size();k++){
				C+=a[k];
			}
		}
	}
	while(cin>>in>>out){
		if(a.size()==1){
			for(int i=0;i<in.size();i++){
				if(pd(in[i])){
					if(!pd(in[i-1])){
						cout<<n;
					}
				}else{
					cout<<in[i];
				}
			}
			cout<<" ";
			for(int i=0;i<out.size();i++){
				if(pd(out[i])){
					if(!pd(out[i-1])){
						cout<<n;
					}
				}else{
					cout<<out[i];
				}
			}
			cout<<endl;n++;
		}else{
			if(v)cout<<A<<"."<<B<<n<<" ";//编号在拓展名后
			else cout<<A<<n<<"."<<B<<" ";//编号在主名后
			if(out[out.size()-1]>='0'&&out[out.size()-1]<='9'){//编号在拓展名后
				cout<<A<<"."<<C<<n<<endl;n++;
			}else{//编号在主名后
				cout<<A<<n<<"."<<C<<endl;n++;
			}
		}
	}
	return 0;
}
2024/4/13 07:41
加载中...