在dev运行没问题,oj上显示编译错误
#include
using namespace std;
int sbe,sen;
char s[101][101];
int begin[101],end[101],mid;
int mbegin=100,mend=1;
int main(){
int n;cin>>n;
int sum=0;
cin.get();
for(int i=1;i<=n;i++){
cin.getline(s[i],101);
}
for(int i=1;i<=n;i++){//取范围
for(int j=0;j<=100;j++){
if(s[i][j]!=' '&&s[i][j]!='\0'){begin[i]=j+1;break;}}
for(int j=0;j<=100;j++){
if(s[i][j]!=' '&&s[i][j]!='\0'){end[i]=j+1;}}
}
for(int i=1;i<=n;i++){
if(mbegin>begin[i]&&begin[i]!=0)mbegin=begin[i];
if(mend<end[i]&&end[i]!=0)mend=end[i];
}
mid=(mbegin+mend)/2;
for(int i=1;i<=n;i++){
if(end[i]!=0){
sbe=i;break;} }
for(int i=1;i<=n;i++){
if(end[i]!=0)sen=i; }
// cout<bool y=true;
for(int i=sbe;i<=sen;i++){
for(int k=mbegin-1,j=mend-1;k--){
if(s[i][k]==s[i][j]){y=true; }
else if(s[i][k]!=' '&&s[i][j]!=' '){y=false;break; } }if(y==false)break;
}if(y)sum+=1;
//x
bool x;
for(int i=sbe,j=sen;i<=(sbe+sen)/2;i++,j--){
for(int m=mbegin-1;m<=mend-1;m++){
if(s[i][m]==s[j][m]){x=true;}
else if(s[i][m]!=' '&&s[i][m]!=' '){x=false;break;} }if(x==false)break;
}if(x)sum+=2;
//centre
bool c;
for(int i=sbe,j=sen;i<=(sbe+sen)/2;i++,j--){
for(int p=mbegin-1,q=mend-1;p--){
if(s[i][p]==s[j][q]){c=true; }
else if(s[i][p]!=' '&&s[i][q]!=' '){x=false;break;}
}if(c==false)break;
}
if(c)sum+=3;
cout<return 0;
额思路如上
有错误提示么?贴出来看看。
我编译提示begin,end名字跟2个函数重名了,需要修改一下。