福倒了,emmm…一开始想用reverse函数逆转二维数组,但是操作中发现涉及到二维数组的指针问题,只能逆转每一行,没有找到逆转列的方法.所以又重新采用了比较,第一个与最后一个比较,一旦出现不同,标志变量改变。
需要注意点地方是:
(1)对应比较的是a[0][1]和a[N-1][N-2],以此类推,规律为比较a[i][j]和a[N-1-i][N-1-j]
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
char c;
int N;
cin>>c>>N;
getchar();
char a[100][100];
for(int i=0;i<N;i++)
{//输入每个字符,如果不是空格就放入c
for(int j=0;j<N;j++)
{
a[i][j]=getchar();
if(a[i][j]!=' ')
a[i][j]=c;
}
getchar();
}
bool flag=true;//设置flag为true表示不用倒了
for(int i=0;i<N&&flag;i++)
{
for(int j=0;j<N;j++)
{
if(a[i][j]!=a[N-1-i][N-1-j])
{//一旦出现不相等,flag为false
flag=false;
break;
}
}
}
if(flag)
{
cout<<"bu yong dao le\n";
}
for(int i=N-1;i>=0;i--)
{//逆序输出
for(int j=N-1;j>=0;j--)
{
cout<<a[i][j];
}
cout<<endl;
}
return 0;
}