不难啊, 不难.
就像第24题一样.
//https://www.luogu.com.cn/problem/P1098
#include<iostream>
using namespace std;
int p1, p2, p3, i = 0,k;
char ch[300], be, af, f, j, p;
int main()
{
scanf_s("%d%d%d%s", &p1, &p2, &p3, ch);
//没必要真正改变ch数组, 只需要用变量来进行输出
while (ch[i])
{
be = ch[i - 1]; af = ch[i + 1]; f = ch[i];
if (f == '-' && af > be && (af <= '9' && be >= '0' || af <= 'z' && be >= 'a'))
{
for (p3 == 1 ? j = be + 1 : j = af - 1; p3 == 1 ? j < af : j > be; p3 == 1 ? j++ : j--)
{
p = j;//
if (p1 == 2)
p = (p >= 'a') ? p - 32 : p;
else if (p1 == 3)
p = '*';
for (k = 0; k < p2; k++)
cout << ("%c", p);
}
}
else
printf("%c", f);
i++;
}
return 0;
}
这里出现过很多细节性的错误...