这道题是比较简单的输出字符图形的题,但是有几个坑还是要注意下。

1.题中所述的X是大写的,不要看成小写了。(我就错了好几次)

2.每一行输出最后的X后不能在输出空格。

3.输出两个DNA中间有一个空行。

解题思路:

只需要求出一个图形X的排列即可,后边直接重复输出,定义一个数组用来存放X,

注意观察图形,我们们可以知道,X所处的位置有两个情况

1.行列数相同

2.所处行数和列数相加等于总行数加一。

下边是代码:

#include<stdio.h>
int main()
{
 int N;
 scanf("%d",&N);//总的测试实例
 while(N--)
 {
  int a,b,i,j,l;
  scanf("%d %d",&a,&b);
  char c[40][40];//定义字符串。
  for(i=1;i<=a;i++)//a代表行列数,b代表重复次数
  for(j=1;j<=a;j++)
  {
   if(i==j||i+j==a+1)//给字符串赋值 根据排列图中排列的规律
   c[i][j]='X';
   else
   c[i][j]=' ';
  }
  for(i=1;i<=a;i++)//首先输出第一个完整的X排列
  {
        int flag=0;//用标志符号控制是否输出每一行的最后一个X,注意有一行只有一个X
  for(j=1;j<=a;j++)
  {
  if(c[i][j]=='X')
  {
  printf("%c",c[i][j]);
  flag++;
  if(i!=(a+1)/2&&flag==2)//输出最后X后要退出,
  break;
  if(i==(a+1)/2&&flag==1)
  break;
  }
  else
  printf(" ");
     }
  printf("\n");
     }
     for(l=2;l<=b;l++)//下边的输出为数组去掉第一行。
  {
  for(i=2;i<=a;i++)
  {
  int flag=0;
  for(j=1;j<=a;j++)
  {
  if(c[i][j]=='X')
  {
  printf("%c",c[i][j]);
  flag++;
  if(i!=(a+1)/2&&flag==2)
  break;
  if(i==(a+1)/2&&flag==1)
  break;
  }
  else
  printf(" ");
     }
  printf("\n");
  }
     }
  printf("\n");//最后输出结束后输出空行。
 }
 return 0;
}

C语言官网蓝桥杯训练1115DNA的更多相关文章

  1. C语言网 蓝桥杯 1117K-进制数

    这是一道较难的题目,我刚开始用排列组合的方式来做,并没有做出来,故运用了的深搜算法. 深搜算法的概念: 选其中一条路,遍历完成后,逐步返回直至全部遍历,最后返回起点. 解题思路 : 题目中对零的个数没 ...

  2. C语言网蓝桥杯1116 IP判断

    判断IP地址的合法性, 1.不能出现除数字和点字符以外的的其他字符 2.数字必须在0-255之间,要注意边界. 题目分析: 因为一个IP是又四个数字组成,且可能存在符号和其他字符,故不能用整型数组处理 ...

  3. 蓝桥杯训练 2n皇后问题

    给定一个n*n的棋盘,棋盘中有一些位置不能放皇后.现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行.同一列或同一条对角线上,任意的两个白皇后都不在同一行.同一列或同一条对角线上 ...

  4. 蓝桥杯训练 2n皇后

    问题描述 给定一个n*n的棋盘,棋盘中有一些位置不能放皇后.现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行.同一列或同一条对角线上,任意的两个白皇后都不在同一行.同一列或同一 ...

  5. 蓝桥杯如何训练?(附VIP题库)

    https://www.dotcpp.com/ 给大家介绍下蓝桥杯,是近几年可以说国内名气最大的程序设计类比赛了 相比国际赛事ACM,蓝桥杯入门简单.中文答题.拿奖率高,更适合国内大众化参加,近几年不 ...

  6. [18/12/3]蓝桥杯 练习系统 入门级别 Fibonacci数列求模问题 题解思路

    前言略. 看到这个题目本来应该很高兴的,因为什么,因为太TM的基础了啊! 可是当你用常规方法尝试提交OJ时你会发现..hhh...运行超时..(开心地摇起了呆毛 //Fibonacci数列递归一般问题 ...

  7. Java实现 蓝桥杯VIP 算法训练 连通分块(并查集)

    试题 算法训练 连通分块 资源限制 时间限制:200ms 内存限制:8.0MB 问题描述 连通分块 输入格式 输入的第一行包含两个整数n, m n代表图中的点的个数,m代表边的个数 接下来m行,每行2 ...

  8. Java实现 蓝桥杯VIP 算法训练 无权最长链

    试题 算法训练 无权最长链 问题描述 给定一个n节点m边的无圈且连通的图,求直径 输入格式 第一行两个数字n,m 接下来m行每行两个数字x,y,代表x,y之间有一条边 输出格式 要求用户的输出满足的格 ...

  9. Java实现 蓝桥杯VIP 算法训练 Car的旅行路线

    大家可以看一下这个,蓝桥杯官网的这道题是有问题的 Car的旅行路线 算法训练 Car的旅行路线 时间限制:1.0s 内存限制:256.0MB 提交此题 锦囊1 锦囊2 查看参考代码 问题描述 又到暑假 ...

随机推荐

  1. (五)Cluster Health

    Let’s start with a basic health check, which we can use to see how our cluster is doing. We’ll be us ...

  2. Filebeat配置参考手册

    Filebeat的配置参考 指定要运行的模块 前提: 在运行Filebeat模块之前,需要安装并配置Elastic堆栈: 安装Ingest Node GeoIP和User Agent插件.这些插件需要 ...

  3. UOJ143 万圣节的数列 构造

    传送门 做过这道题,然后这道题告诉你怎么构造数据-- 一种可行的构造方式是:将奇数和偶数分成两半,奇数放在偶数前面,然后除以2,再递归下去处理. 构造的正确性是显然的:如果存在"奇数偶数奇数 ...

  4. React-propsType和defaultProps

    TodoItem.propTypes={ content:PropTypes.string, text:PropTypes.string.isRequired, handleDeleteItem:Pr ...

  5. 基于Metronic的Bootstrap开发框架--工作流模块功能介绍(2)

    本篇继续<基于Metronic的Bootstrap开发框架--工作流模块功能介绍>,继续介绍基于Metronic的Bootstrap开发框架的工作模块功能,介绍工作流模块中相关业务表单的界 ...

  6. EF 6.x和EF Core实现返回dynamic类型

    前言 未曾想需要直接返回dynamic,多次尝试未能实现,最终还是在stackoverflow上找到了解决方案,特此备忘录. public static dynamic SqlQuery(this D ...

  7. php函数 array_change_key_cash

    array_change_key_case ( array $array [, int $case = CASE_LOWER ] ) : array array_change_key_case() 将 ...

  8. java的List列表转成Tree(树形)结构列表

    直接看借鉴博客:https://blog.csdn.net/massivestars/article/details/53911620/ 由于我的业务没有父子级id两个字段,只有一个层级id字段来分层 ...

  9. 访问docker仓库

    仓库(Repositiry)是集中存放镜像的地方,分为公共仓库和私有仓库.一个容易与之混淆的概念是注册服务器(Registry).实际上注册服务器是存放仓库的具体服务器,一个注册服务器上可以有多个仓库 ...

  10. 社交系统ThinkSNS+安装部署演示

    ThinkSNS(简称TS),一款全平台综合性社交软件系统,10年来为国内外大中小企业和创业者提供社交化软件研发及技术解决方案.目前有ThinkSNS V4.ThinkSNS+两个并行系统. Thin ...