#include <iostream>
#include <string.h>
using namespace std;
int main()
{
int p1,p2,p3,x;
cin>>p1>>p2>>p3;
char a[100];
cin>>a;
x=strlen(a);
int i,j;
char b,c,d;
for(i=0;i<x;i++)
{
if(a[i]!='-')cout<<a[i];
if(a[i]=='-'){
b=a[i-1],c=a[i+1];
for(;++b<c;)
{
if(p1==1,p3==1)
{
if(65<=b&&b<=90)
{
b=b+32,c=c+32;
d=b+1;
for(j=0;j<p2;j++)cout<<d;
b++;
}
else {
d=b+1;
for(j=0;j<p2;j++)cout<<d;
b++;}
}
if(p1==2,p3==1)
{
if(97<=b&&b<=122)
{
b=b-32,c=c-32;
d=b+1;
for(j=0;j<p2;j++)cout<<d;
b++;
}
else {
d=b+1;
for(j=0;j<p2;j++)cout<<d;
b++;}
}
if(p1==1,p3==2)
{
if(65<=b&&b<=90)
{
b=b+32,c=c+32;
d=c-1;
for(j=0;j<p2;j++)cout<<d;
c--;
}
else {
d=c-1;
for(j=0;j<p2;j++)cout<<d;
c--;}
}
if(p1==2,p3==2)
{
if(97<=b&&b<=122)
{
b=b-32,c=c-32;
d=c-1;
for(j=0;j<p2;j++)cout<<d;
c--;
}
else {
d=c-1;
for(j=0;j<p2;j++)cout<<d;
c--;}
}
}
}
}
}
我自己检查了很久,找不到错误在哪,编码没问题,运行出错,输入1 2 1,a-d,结果是accDDd
思路是遇到“-”,就直接分类输出,p1=3情况还未考虑进去