70分
查看原帖
70分
375242
ynxynx楼主2020/12/18 22:15

哪里错了

#include<bits/stdc++.h>
using namespace std;
char ch[1000001],s[1000001];
int n,m,k;
int main(){
	cin >> n >> m >> k;
	scanf ("%s",&s);
	int l = strlen (s);
	for (int i = 0;i < l;i ++) {
		if (s[i] == '-') {
			char ch1 = s[i - 1],ch2 = s[i + 1];
			if (ch1 >= ch2) {
				cout << '-';
				continue;
			}
			if (!(ch1 >= '0' && ch2 >= '0' && ch1 <= '9' && ch2 <= '9') && !(ch1 >= 'a' && ch2 >= 'a' && ch1 <= 'z' && ch2 <= 'z')){
				cout <<'-';
				continue;
			}
			memset(ch,-1000,sizeof(ch));
			int p = ch1 - ch2 - 1;
			if (n == 3) {
				for (int i = 1;i <= p * m;i ++) cout << "*";
				continue;
			}
			int pp = 0;
			if (n == 2 && !(ch1 >= 0 && ch1 <= 9 && ch2 >= 0 && ch2 <= 9)) ch1 = ch1 - 32,ch2 = ch2 - 32;
			for (char j = ch1 + 1;j < ch2;j ++) {
				for (int st = 1;st <= m;st ++) {
					ch[++ pp] = j;
				}
			}
			if (k == 2) for (int j = pp;j >= 1;j --){
				cout << ch[j];
			}
			else for (int j = 1;j <= pp;j ++) {
				cout << ch[j];
			}
		}
		else {
			cout << s[i];
		}
	} 
}
2020/12/18 22:15
加载中...