赞
踩
“福”字倒着贴,寓意“福到”。不论到底算不算民俗,本题且请你编写程序,把各种汉字倒过来输出。这里要处理的每个汉字是由一个 N × N 的网格组成的,网格中的元素或者为字符 @
或者为空格。而倒过来的汉字所用的字符由裁判指定。
输入在第一行中给出倒过来的汉字所用的字符、以及网格的规模 N (不超过100的正整数),其间以 1 个空格分隔;随后 N 行,每行给出 N 个字符,或者为 @
或者为空格。
输出倒置的网格,如样例所示。但是,如果这个字正过来倒过去是一样的,就先输出bu yong dao le
,然后再用输入指定的字符将其输出。
- $ 9
- @ @@@@@
- @@@ @@@
- @ @ @
- @@@ @@@
- @@@ @@@@@
- @@@ @ @ @
- @@@ @@@@@
- @ @ @ @
- @ @@@@@
- $$$$$ $
- $ $ $ $
- $$$$$ $$$
- $ $ $ $$$
- $$$$$ $$$
- $$$ $$$
- $ $ $
- $$$ $$$
- $$$$$ $
- & 3
- @@@
- @
- @@@
- bu yong dao le
- &&&
- &
- &&&
代码:
- #include <iostream>
- #include <cstdio>
- #include <cstring>
- #include <string>
- using namespace std;
- int main() {
- char c;
- int n,flag=1,i,flag1=1;
- string s[101];
- cin>>c>>n;
- getchar();
- for(i=0; i<n; i++) {
- getline(cin,s[i]);
- }
- for(i=0; i<n; i++) {
- for(int j=0; j<n; j++) {
- if(s[i][j]!=' ') {
- s[i][j]=c;
- }//改变字符
- }
- }
- for(i=0; i<=n/2; i++) {
-
- if(i==n/2) {
- for(int j=0; j<n/2; j++) {
- if(s[i][j]!=s[i][n-1-j]) {
- flag1=0;
- }//判断
- }
- if(s[i]!=s[n-1-i]) {
- flag=0;
- continue;
- }//判断
- }
- }
-
- if(flag==1&&flag1==1) {
- cout<<"bu yong dao le"<<endl;
- }
- for(i=n-1; i>=0; i--) {
- for(int j=n-1;j>=0;j--)
- {
- cout<<s[i][j];
- }
- cout<<endl;
- }
- return 0;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。