社区讨论
小小小模拟求调
灌水区参与者 2已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @m2iwjfp0
- 此快照首次捕获于
- 2024/10/21 18:57 去年
- 此快照最后确认于
- 2024/10/21 20:14 去年
CPP
#include<bits/stdc++.h>
using namespace std;
bool pd(char a){
if(a>='0'&&a<='9')return 1;
return 0;
}
int n,d;
string a,A,B,C,in,out;
int main(){
getline(cin,a);
if(a.size()==1&&a[0]=='1'){
n=1;
}else{
//d为'.'的位置
for(int i=0;i<a.size();i++){
if(a[i]=='.'){
d=i;break;
}
}
if(pd(a[d-1])){//编号在主名后(A数.B C)
for(int i=0;;i++){
if(pd(a[i]))break;
A+=a[i];
}
for(int i=0;i<a.size();i++){
if(pd(a[i]))n=n*10,n+=a[i]-'0';
}
for(int i=d+1;;i++){
if(a[i]==' ')break;
B+=a[i];
}
}else{//编号在拓展名后(A.B数 C)
for(int i=0;i<d;i++){
A+=a[i];
}
for(int i=d+1;i<a.size();i++){
if(pd(a[i]))break;
B+=a[i];
}
for(int i=0;i<a.size();i++){
if(a[i]==' ')break;
if(pd(a[i]))n=n*10,n+=a[i]-'0';
}
}
for(int i=a.size()-1;;i--)if(a[i]==' ')break;else C+=a[i];
for(int i=0;i<C.size()/2;i++)swap(C[i],C[C.size()-i-1]);
}
while(cin>>in>>out){
if(a[0]=='0'||a[0]=='1'){
for(int i=0;i<in.size();i++){
if(pd(in[i])&&!pd(in[i-1])){
cout<<n;
}else if(!pd(in[i])){
cout<<in[i];
}
}
cout<<" ";
for(int i=0;i<out.size();i++){
if(pd(out[i])&&!pd(out[i-1])){
cout<<n;
}else if(!pd(out[i])){
cout<<out[i];
}
}
cout<<endl;n++;
}else{
if(pd(a[d-1])){//编号在主名后(A数.B C)
cout<<A<<n<<"."<<B<<" "<<A<<n<<"."<<C<<endl;n++;
}else{//编号在拓展名后(A.B数 C)
cout<<A<<"."<<B<<n<<" "<<A<<"."<<C<<n<<endl;n++;
}
}
}
return 0;
}
回复
共 3 条回复,欢迎继续交流。
正在加载回复...