当前位置: 首页 > news >正文

wordpress还原回收站网站页脚导航

wordpress还原回收站,网站页脚导航,长子营网站建设,淄博软件开发公司有哪些前言:内容包括:题目,代码实现,大致思路,代码解读 题目: “福”字倒着贴,寓意“福到”。不论到底算不算民俗,本题且请你编写程序,把各种汉字倒过来输出。这里要处理的每…

前言:内容包括:题目,代码实现,大致思路,代码解读

题目:

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

输入格式:

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

输出格式:

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

输入样例 1:

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

输出样例 1:

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

输入样例 2:

& 3
@@@@ 
@@@

输出样例 2:

bu yong dao le
&&&& 
&&&

代码实现:

#include<stdio.h>
int main()
{char ch = 0;int n = 0;char arr[100][100]={0};scanf("%c %d",&ch,&n);int flag=1;getchar();int i = 0;//存入汉字for(i=0;i<n;i++){int j = 0;for(j=0;j<n;j++){arr[i][j]=getchar();}getchar();}//判断正过来和倒过去是否一样for(i=0;i<n;i++){int j = 0;for(j=0;j<n;j++){if(arr[i][j]!=arr[n-i-1][n-j-1]){flag=0;}}}if(flag==1){printf("bu yong dao le\n");}//倒序打印+逆序打印for(i=n-1;i>=0;i--){int j = 0;for(j=n-1;j>=0;j--){if(arr[i][j]==32){printf(" ");}else{printf("%c",ch);}}printf("\n");}return 0;
}

大致思路:

 1 要实现汉字倒过来的效果:需要从最后一行开始打印,并逆序这一行,使用循环

 2 判断正过来倒过去是否一样:

    某一行和其对应的行数(某一行的下标+它对应的行数的下标=总行数-1)进行比较,

    某一行的最开始的字符和对应的行数的最后的字符比较,然后依次遍历比较,若是发现有不相同的则说明有必要倒置,若是发现全部都相同,则打印无需倒置的信息:bu yong dao le  比如:

 

 总行数是3 第一行的下标是0 ,其对应的行数是第三行,下标为2     0+2=3-1

  红色方框之间进行比较,橙色方框之间进行比较

代码解读:

part 1

    char ch = 0;int n = 0;char arr[100][100]={0};scanf("%c %d",&ch,&n);int flag=1;getchar();

使用二维数组arr存储组成汉字的字符

使用flag来标记正过来和倒过去的字符是否相同,若是相同则flag还是初始值1,若是不同则flag置成0

注意:在输入二维数组的行数和列数后(使用的都是同一个数字)需要使用getchar读走数字后的\n

这样在下面使用getchar一个一个读取用户输入的字符后,确保读取的都是有效字符

part 2:存入汉字

    int i = 0;for(i=0;i<n;i++){int j = 0;for(j=0;j<n;j++){arr[i][j]=getchar();}getchar();}

使用getchar一个一个字符的读取

注意:在读取完一行的字符后,需要再使用一个getchar读走换行符\n

part 2:判断正过来和倒过去的汉字是否一样

    //判断正过来和倒过去是否一样for(i=0;i<n;i++){int j = 0;for(j=0;j<n;j++){if(arr[i][j]!=arr[n-i-1][n-j-1]){flag=0;}}}

比如 

 我们现在要判断整个矩阵正过来和倒过去是否一样,需要行数之间两两比较:

行数0和行数2比较  行数1 和行数1比较

因为0+2=总行数3-1   1+1=总行数3-1

行数之间的两两比较:由于倒过去的汉字是以正着的汉字的最后一行的最后一个字符作为第一行的第一个字符,故而我们需要两行的字符交叉比较

红色方框之间比较,橙色方框之间比较……

part 3:倒序+逆序打印

   if(flag==1){printf("bu yong dao le\n");}//倒序打印+逆序打印for(i=n-1;i>=0;i--){int j = 0;for(j=n-1;j>=0;j--){if(arr[i][j]==32){printf(" ");}else{printf("%c",ch);}}printf("\n");}

倒过来的汉字是从正着的汉字的最后一行开始打印,并且需要逆序这一行的字符

空格的ASCII码值是32,若是二维数组中的某个空间存放的是空格,则输出空格

http://www.yayakq.cn/news/73993/

相关文章:

  • 湘潭网站定制互联网营销设计
  • 少部分网站ie打不开这些网站域名ping不通最新h5优秀作品欣赏
  • 做我女朋友的表白句的网站网站方案建设书模板
  • 怎样下载建设银行信用卡网站郑州建设网站推广公司
  • 怎么联网访问自己做的网站直播平台网站建设
  • 购物网站功能模块设计中国美食网页设计
  • 上海网站建设收费标准宁波妇科最有名的医院
  • 营销型网站建设的原则口碑营销是指
  • 深圳美容网站建设甘肃兰州房价
  • WordPress P站中国进出口贸易网
  • 做网站优化的关键词怎么设置织梦手机网站怎么修改
  • 网站建设公司968遵义营商环境建设局网站
  • 个人网站做百度推广北京网站排名
  • 深圳凡科网站建设比较好的网站开发框架
  • 广州市筑正工程建设有限公司网站建设一个网站的工作方案
  • 网站建设建网站做网站网站设计中国建设工程招标网官网
  • 网站开发建设类合同沈阳工程信息招标网
  • 电子商务网上法庭南京seo报价
  • 河南建设网站公司邢台网站建设报价
  • iis网站数据库失败菏泽网站建设网站
  • 整站排名优化教程网页视频下载插件哪个好用
  • 网站建设系统平台wordpress没用
  • 怎么做免费网站被收录图床网站怎么做
  • wordpress 微商网站肇庆网站建设制作公司
  • 网站开发服务器怎么选免费微信建站有哪些网站
  • 企业营销型网站建设哪家公司好兰州seo网站排名
  • 做电影网站需要哪些条件网易云音乐网站开发介绍
  • 网站建设公司国内技术最强电子商务网站的开发原则包括
  • 手机网站开发程序员网站开发的权限设置
  • 网站备案主体注销angular 做网站