只有20分,前四个样例都是运行时错误??!!
查看原帖
只有20分,前四个样例都是运行时错误??!!
388391
我是小何子啊楼主2020/10/4 11:39

大老们帮我看看吧!

我的代码:

#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;//输出
	}
}
2020/10/4 11:39
加载中...