当前位置:   article > 正文

L1-6 福到了 (模拟)

l1-6 福到了
L1-6 福到了(15 分)

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

输入格式:

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

输出格式:

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

输入样例 1:

  1. $ 9
  2. @ @@@@@
  3. @@@ @@@
  4. @ @ @
  5. @@@ @@@
  6. @@@ @@@@@
  7. @@@ @ @ @
  8. @@@ @@@@@
  9. @ @ @ @
  10. @ @@@@@

输出样例 1:

  1. $$$$$ $
  2. $ $ $ $
  3. $$$$$ $$$
  4. $ $ $ $$$
  5. $$$$$ $$$
  6. $$$ $$$
  7. $ $ $
  8. $$$ $$$
  9. $$$$$ $

输入样例 2:

  1. & 3
  2. @@@
  3. @
  4. @@@

输出样例 2:

  1. bu yong dao le
  2. &&&
  3. &
  4. &&&                

代码:        

  1. #include <iostream>
  2. #include <cstdio>
  3. #include <cstring>
  4. #include <string>
  5. using namespace std;
  6. int main() {
  7. char c;
  8. int n,flag=1,i,flag1=1;
  9. string s[101];
  10. cin>>c>>n;
  11. getchar();
  12. for(i=0; i<n; i++) {
  13. getline(cin,s[i]);
  14. }
  15. for(i=0; i<n; i++) {
  16. for(int j=0; j<n; j++) {
  17. if(s[i][j]!=' ') {
  18. s[i][j]=c;
  19. }//改变字符
  20. }
  21. }
  22. for(i=0; i<=n/2; i++) {
  23. if(i==n/2) {
  24. for(int j=0; j<n/2; j++) {
  25. if(s[i][j]!=s[i][n-1-j]) {
  26. flag1=0;
  27. }//判断
  28. }
  29. if(s[i]!=s[n-1-i]) {
  30. flag=0;
  31. continue;
  32. }//判断
  33. }
  34. }
  35. if(flag==1&&flag1==1) {
  36. cout<<"bu yong dao le"<<endl;
  37. }
  38. for(i=n-1; i>=0; i--) {
  39. for(int j=n-1;j>=0;j--)
  40. {
  41. cout<<s[i][j];
  42. }
  43. cout<<endl;
  44. }
  45. return 0;
  46. }


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/301070
推荐阅读
相关标签
  

闽ICP备14008679号