PTA福到了

“福”字倒着贴,寓意“福到”。不论到底算不算民俗,本题且请你编写程序,把各种汉字倒过来输出。这里要处理的每个汉字是由一个 N × N 的网格组成的,网格中的元素或者为字符 @ 或者为空格。而倒过来的汉字所用的字符由裁判指定。

输入格式:

输入在第一行中给出倒过来的汉字所用的字符、以及网格的规模 N (不超过100的正整数),其间以 1 个空格分隔;随后 N 行,每行给出 N 个字符,或者为 @ 或者为空格。

输出格式:

输出倒置的网格,如样例所示。但是,如果这个字正过来倒过去是一样的,就先输出bu yong dao le,然后再用输入指定的字符将其输出。

输入样例 1:

$ 9
 @  @@@@@
@@@  @@@ 
 @   @ @ 
@@@  @@@ 
@@@ @@@@@
@@@ @ @ @
@@@ @@@@@
 @  @ @ @
 @  @@@@@

输出样例 1:

$$$$$  $ 
$ $ $  $ 
$$$$$ $$$
$ $ $ $$$
$$$$$ $$$
 $$$  $$$
 $ $   $ 
 $$$  $$$
$$$$$  $ 

输入样例 2:

& 3
@@@
 @ 
@@@

输出样例 2:

bu yong dao le
&&&
 & 
&&&

代码:

#include 

using namespace std;

typedef long long int ll;
#define endl "\n"
#define maxLine 110
int n;
char s;
char tt[maxLine][maxLine];
bool checkArray(char signArray[][maxLine]){
    int len=n;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            if (signArray[i][j]!=signArray[n+1-i][j]){
                return false;
            }
        }
    }
    return true;
} 

void print(char ss[][maxLine]){
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            cout<>s>>n;
    getchar();
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n+1;j++){
            char temp=getchar();
            if (j<=n) tt[i][j]=temp;
        }
    }
    // print(tt);
    if (checkArray(tt)){
        cout<<"bu yong dao le"<=1;i--){
        for(int j=n;j>=1;j--){
            if (tt[i][j]!=' ') cout<

 小tips

传递二维数组进入

// 声明
void print(int array[][maxYLen]){
    for( i...n){
        for(j...n){
            // TODO your operate 
        }
}
// 调用 in tt[][maxLen];
print(tt);

你可能感兴趣的:(算法,c++,数据结构)