可以说是非常变态了 全是细节问题
#include <iostream> using namespace std; void put(int p1,int p2,int p3, char fst, char lst) { if(p1 == 1) { if(p3 == 1) { char tc = fst + 1; while(tc < lst) { int t = p2; while(t--) { cout<<tc; } tc++; } } else { char tc = lst - 1; while(tc > fst) { int t = p2; while(t--) { cout<<tc; } tc--; } } } else if(p1 == 2) { if(p3 == 1) { char tc = fst + 1 - 32; while(tc < lst - 32) { int t = p2; while(t--) { cout<<tc; } tc++; } } else { if(lst >= 'a' && lst <='z') { char tc = lst - 1 - 32; while(tc > fst - 32) { int t = p2; while(t--) { cout<<tc; } tc--; } } else { char tc = lst - 1; while(tc > fst) { int t = p2; while(t--) { cout<<tc; } tc--; } } } } else { if(p3 == 1) { char tc = fst + 1; while(tc < lst) { int t = p2; while(t--) { cout<<'*'; } tc++; } } else { char tc = lst - 1; while(tc > fst) { int t = p2; while(t--) { cout<<'*'; } tc--; } } } } int main() { int p1, p2, p3; cin>>p1>>p2>>p3; string ss; cin>>ss; for(int i = 0; i < ss.length(); i++) { if(ss[i] != '-') cout<<ss[i]; else { if(ss[i - 1] >= 'a' && ss[i - 1] <= 'z' && ss[i + 1] >= 'a' && ss[i + 1] <= 'z' || ss[i - 1] >= '0' && ss[i - 1] <= '9' && ss[i + 1] >= '0' && ss[i + 1] <= '9') { if(ss[i - 1] < ss[i + 1]) { put(p1, p2, p3, ss[i - 1], ss[i + 1]); } else { cout<<ss[i]; } } else { cout<<ss[i]; } } } return 0; }