首页 > 其他分享 >天梯赛L1-054 福到了

天梯赛L1-054 福到了

时间:2023-05-18 19:56:26浏览次数:45  
标签:字符 输出 int 元素 样例 数组 L1 054 福到

一、问题描述

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

输入格式:

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

输出格式:

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

输入样例 1:

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

输出样例 1:

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

输入样例 2:

& 3
@@@
 @ 
@@@
 

输出样例 2:

bu yong dao le
&&&
 & 
&&&
   

二、设计思路

(1)先用字符串数组接收n个字符串,以及需要将原来字符换成的新字符ch;

(2)初始化一个bool类型变量x为true,然后用for循环,依次对比第一个元素和最后一个元素,第二个元素和倒数第二个元素......如果有任何一对元素不相同,则将false赋值给x;

(3)根据x的数值,来对应进行输出,如果x为true,则表明该图案倒转前后一样,先输出“bu yong dao le”,再按照原图案输出即可,如果x为false,则倒着输出该图案,即从最后一行的最后一个元素依次输出;

三、程序流程图

 

四、伪代码

五、代码

 1 #include <iostream>
 2 #include <string>
 3 using namespace std;
 4 int main()
 5 {
 6     string s[100];   //看成一个二维字符数组
 7     int n;
 8     char ch;
 9     cin >> ch >> n;
10     getchar();
11     for (int i = 0; i < n; i++)
12     {
13         getline(cin, s[i]);
14     }
15     bool x = true;
16     for (int i = 0; i < n; i++)
17     {
18         for (int j = 0; j < n; j++)
19         {
20             int a = n - i - 1;   //i,j是从0开始的,对应的元素都要相应-1(即n-i之后再-1)
21             int b = n - j - 1; //s[a][b]是与s[i][j]所对应的元素
22             if (s[i][j] != s[a][b])
23             {
24                 x = false;     //只要有任何一对元素不相同,则需要倒转,就把x的值置为false
25             }
26         }
27     }
28     if (x)      //不同x的值对应不同的输出情况
29     {
30         cout << "bu yong dao le" << endl;
31         for (int i = 0; i < n; i++)
32         {
33             for (int j = 0; j < n; j++)
34             {
35                 if (s[i][j] == ' ')
36                 {
37                     cout << " ";
38                 }
39                 else
40                 {
41                     cout << ch;
42                 }
43             }
44             cout << endl;
45         }
46     }
47     else
48     {
49         for (int i = 0; i < n; i++)
50         {
51             for (int j = 0; j < n; j++)
52             {
53                 int a = n - i - 1;
54                 int b = n - j - 1;
55                 if (s[a][b] == ' ')
56                 {
57                     cout << " ";
58                 }
59                 else
60                 {
61                     cout << ch;
62                 }
63             }
64             cout << endl;
65         }
66     }
67     return 0;
68 }

运行结果:

 

 

六、总结

(1)二维字符数组可以用string s【n】定义一个n*n的字符数组;

(2)由于在二维字符数组每个字符串单独占一行, 所以可以用 s[n] 引用该二维数组字符中第 n 行的字符串, 也可以用 s[i][j] 引用某行某列中的单独一个字符串;

标签:字符,输出,int,元素,样例,数组,L1,054,福到
From: https://www.cnblogs.com/lian369/p/17413104.html

相关文章

  • ASEMI代理ADI亚德诺ADP5054ACPZ-R7供电管理芯片介绍
    编辑-Z本文主要介绍ADP5054ACPZ-R7供电管理芯片的基本特性和应用场景。该芯片支持多路输出,具有高效和可靠性的特点,适用于各种电力系统和工业控制设备。 1、ADP5054ACPZ-R7的基本特性ADP5054ACPZ-R7是一款高度集成的供电管理芯片,具有以下特点: (1)支持6路输出,分别为1.8V、2.5V......
  • 天梯赛L1-044 稳赢
    一、问题描述大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:现要求你编写一个稳赢不输的程序,根据对方的出招,给出对应的赢招。但是!为了不让对方输得太惨,你需要每隔K次就让一个平局。输入格式:输入首先在第一行给出正整数K(≤10),即平局间隔的次数。随后每行......
  • L1-003 个位数统计(C++)
    一、问题描述:给定一个 k 位整数 N=dk−1​10k−1+⋯+d1​101+d0​ (0≤di​≤9, i=0,⋯,k−1, dk−1​>0),请编写程序统计每种不同的个位数字出现的次数。例如:给定 N=100311,则有2个0,3个1,和1个3。输入格式:每个输入包含1个测试用例,即一个不超过1000位的正整数......
  • postgresql14编译安装参考手册(centos)
    Linux平台编译安装的快捷参考(Centos7.X平台/Pg14beta3为例):说明:postgres官网源码编译安装操作步骤有一些小坑没更新过来,所以参考官网的安装步骤重新整理了一下,PG12,13部署均可以参考该文档。参考链接:下载页面/Download:世界上功能最强大的开源数据库...icon-default.png?t=L892......
  • instantclient12&plsql12下载、安装及配置
    一、oracle11gclient下载安装及配置1.1下载instantclient下载链接根据操作系统和机器位数选择相应的下载链接1.2安装及配置1.在E盘创建文件夹比如oracle_client,将下载的压缩包解压到刚新建的文件夹中(E:\oralce_client\instantclient_11_2)。解压好就算安装完成2.在当前......
  • 2023 PTA天梯赛补题(L1 & L2)
    2023天梯赛L1&L2补题L1L1-089最好的文档输入输出题#include<bits/stdc++.h>usingnamespacestd;intmain(){cout<<"Goodcodeisitsownbestdocumentation.";return0;}L1-090什么是机器学习输入输出题#include<bits/stdc++.h>us......
  • Laravel10 Auth 多用户(管理员、用户的区分)
    参考https://learnku.com/docs/laravel/10.x/authenticationmd/14876#retrieving-the-authenticated-user环境软件/系统版本说明windows10php8.1.9-Win32-vs16-x64composer2.5.5laravel10.8.0mysql8.0.28注意如果需要使用密码功能,还需......
  • 天梯赛L1-070 吃火锅
    一、问题描述以上图片来自微信朋友圈:这种天气你有什么破事打电话给我基本没用。但是如果你说“吃火锅”,那就厉害了,我们的故事就开始了。本题要求你实现一个程序,自动检查你朋友给你发来的信息里有没有 chi1huo3guo1。输入格式:输入每行给出一句不超过80个字符的、以回车结......
  • COMP90054-2023S1设计理论
    COMP90054-2023S1/A3_public_templatePublictemplate0stars1forkViewcodeAssignment3:AzulProjectYoumustreadfullyandcarefullytheassignmentspecificationandinstructionsdetailedinthisfile.YouareNOTtomodifythisfileinanyway.Course:CO......
  • Windows10下安装OpenSSL curl WIN32 /WIN64 openssl1.1.x
     首先是环境,强调下环境,很多问题是环境造成的。1.WINDOWS1064位系统;2.VisualStudio2015 工具: 1.ActivePerl-5.24.3.2404-MSWin32-x64-404865.exe,下载地址:https://www.activestate.com/products/activeperl/downloads/  2. openssl-1.1.0f.tar.gz  下载地址: h......