80求助 #6 #7 一直过不了 代码如下
查看原帖
80求助 #6 #7 一直过不了 代码如下
804013
imsorrysleepy楼主2023/1/12 20:53
using namespace std;
#include <iostream>
int main() {
	int p1, p2, p3;
	cin >> p1 >> p2 >> p3;
	getchar();
	string a;
	cin >> a;
	int l = 0, r = 0, j = 1;
	int m = 0;
	int lth = a.length();
	for (int i = 0; i < lth; i++) {
		if (a[i] != '-' || i == 0 || i == lth - 1)cout << a[i];
		else {
			j = 1;
			l = int(a[i - 1]);
			do {
				r = int(a[i + j]);
				j++;
			} while (r == '-');
			m = r - l - 1;
			if (m < 0 || m > 26) {
				for (int t = j - 1; t > 0; t--)cout << "-";
			} else {
				if (p1 == 3) {
					for (int j = 1; j <= m; j++) {
						for (int k = 1; k <= p2; k++) {
							cout << "*";
						}
					}
				} else if (p1 == 2 && (r >= 'a' && r <= 'z' && l >= 'a' && l <= 'z')) {
					if (p3 == 1) {
						++l;
						for (int j = 1; j <= m; j++) {
							for (int k = 0; k < p2; k++) {
								cout << char(l - 32);
							}
							++l;
						}
					} else if (p3 == 2) {
						--r;
						for (int j = 1; j <= m; j++) {
							for (int k = 0; k < p2; k++) {
								cout << char(r - 32);
							}
							--r;
						}
					}
				} else {
					if (p3 == 1) {
						++l;
						for (int j = 1; j <= m; j++) {
							for (int k = 1; k <= p2; k++) {
								cout << char(l);
							}
							++l;
						}
					} else if (p3 == 2) {
						--r;
						for (int j = 1; j <= m; j++) {
							for (int k = 1; k <= p2; k++) {
								cout << char(r);
							}
							--r;
						}
					}
				}
			}
			--j;
			i += j - 1;
		}
	}
	return 0;
}
2023/1/12 20:53
加载中...