本题要求倒着输出,输出时换成另一个字符,所以就在刚输入到数组(第一个数组)的时候下手,输入的是空格,那么新数组(第二个)就是空格,输入的是字符,那么新数组是另一个要求的字符,最后横纵坐标都倒过来就完成倒着输出了。
因为还要判断倒过来和原来的形式是否是一样的,这就需要又一个新数组(第三个),新数组的内容是第一个数组的逆序,然后比较第一个数组和第三个数组的每一行,如果都相同,则输出 bu yong dao le.
#include<iostream>
using namespace std;
int main()
{
char c,d[110][110],e[110][110];
int n,flag = 1,x = 0,y = 0;
scanf("%c %d",&c,&n);
getchar();
for(int i = 0;i < n; i++)
{
for(int j = 0;j < n; j++)
{
scanf("%c",&d[i][j]);
e[i][j] = d[i][j];
}
getchar();
}
for(int i = n - 1;i >= 0; i--)
{
for(int j = n - 1;j >= 0; j--)
{
if(e[y][x++] != d[i][j])
flag = 0;
}
x = 0;
y++;
}
if(flag)
printf("bu yong dao le\n");
for(int i = n - 1;i >= 0; i--)
{
for(int j = n - 1;j >= 0; j--)
{
if(d[i][j] == '@')
printf("%c",c);
else
printf("%c",d[i][j]);
}
printf("\n");
}
return 0;
}