大老们帮我看看吧!
我的代码:
#include<iostream>
#include<cstring>
using namespace std;
int n,mx,mi,a[1001];
string s[1001],f[27][1001],z[27]={"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"};
void pan(int t,string s){
for(int i=0;i<s.length();++i){
if(s[i]==z[(4+t)%26][0]){//判断是不是E
++a[t];
}
}
if(a[t]>mx) mx=a[t],mi=t;//求那个t
}
int main(){
while(1){
getline(cin,s[++n]);
for(int i=0;i<s[n].length();++i) if(s[n][i]>='a'&&s[n][i]<='z') s[n][i]-=32;
if(s[n]=="ENDOFINPUT") break;
}
for(int i=0;i<=26;++i) pan(i,s[2]);
for(int i=2;i<=n-2;i+=3){
for(int j=0;j<s[i].length();++j){
if(s[i][j]>='A'&&s[i][j]<='Z'){//转换
for(int k=0;k<26;++k){
if(s[i][j]==z[k][0]){
int x=k-mi;//移位
if(x<0) x=26+x;
s[i][j]=z[x][0];//转换
break;
}
}
}
}
cout<<s[i]<<endl;//输出
}
}