第七个点有数据吗,一直过不了呜呜呜
查看原帖
第七个点有数据吗,一直过不了呜呜呜
37585
liuxu楼主2022/9/25 12:38
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
char s[110];
int p1,p2,p3,len;
int change1(char x){
	if(x>='A'&&x<='Z') return (int)x+32;
	else return (int)x;
}
int change2(char x){
	if(x>='A'&&x<='Z') return (int)x;
	else return (int)x-32;
}
int main(){
	scanf("%d%d%d%s",&p1,&p2,&p3,s);
	int len=strlen(s);
	for(int i=0;i<len;i++){
	//	cout<<i<<' '<<s[i-1]<<' '<<s[i+1]<<endl;
		if(s[i]!='-') printf("%c",s[i]);
		else if(i==0||i==len-1) printf("%c",s[i]);
		else if(s[i-1]+1==s[i+1]) continue;
		else if((s[i-1]<='9'&&s[i+1]>'9')||(s[i-1]>'9'&&s[i+1]<='9')) printf("%c",s[i]);
		else if((s[i-1]<='Z'&&s[i+1]>'Z')||(s[i-1]>'Z'&&s[i+1]<='Z')) printf("%c",s[i]);
		else if(s[i-1]>=s[i+1]) printf("%c",s[i]);// specitic
		else if(s[i-1]>='0'&&s[i-1]<='9'){
			if(p1==1||p1==2){
				if(p3==1) for(int j=s[i-1]-47;j<s[i+1]-48;j++) for(int k=1;k<=p2;k++) printf("%d",j);
				else for(int j=s[i+1]-49;j>s[i-1]+48;j--) for(int k=1;k<=p2;k++) printf("%d",j);
			}
			else for(int j=1;j<=(s[i+1]-s[i-1]-1)*p2;j++) printf("*");
		}// 数字
		else{
			if(p1==1){
				int l=change1(s[i-1]),r=change1(s[i+1]);
				if(p3==1) for(int j=l+1;j<r;j++) for(int k=1;k<=p2;k++) printf("%c",j);
				else for(int j=r-1;j>l;j--) for(int k=1;k<=p2;k++) printf("%c",j);
			}
			else if(p1==2){
				int l=change2(s[i-1]),r=change2(s[i+1]);
			//	cout<<(int)'a'<<' '<<(int)'d'<<' '<<s[i-1]<<' '<<s[i+1]<<' '<<l<<' '<<r<<endl;
				if(p3==1) for(int j=l+1;j<r;j++) for(int k=1;k<=p2;k++) printf("%c",j);
				else for(int j=r-1;j>l;j--) for(int k=1;k<=p2;k++) printf("%c",j);
			}
			else{
				int l=change1(s[i-1]),r=change1(s[i+1]);
				for(int j=l+1;j<r;j++) for(int k=1;k<=p2;k++) printf("*");
			}
		}// 字母
	}
	return 0;
}
2022/9/25 12:38
加载中...