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

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. 第十届蓝桥杯省赛JavaB组个人题解

    前言 以下的第十届蓝桥杯Java B组省赛的题目题解只是我个人的题解,提供一些解题思路,仅作参考,如有错误,望大家指出,不甚感激,我会及时更改. 试题 A: 组队 ----- 答案:490 [问题描述 ...

  2. hadoop 集群 master datanode 没有启动

    2018-02-07 02:47:50,377 WARN org.apache.hadoop.hdfs.server.common.Storage: java.io.IOException: Inco ...

  3. 《Effective C++》继承与面对对象设计:条款32-条款40

    条款32:确定你的public继承塑模出is-a关系 public继承意味着is-a.适用于base class身上的每一个函数也一定适用于derived class. 条款33:避免遮掩继承而来的名 ...

  4. Python——Django-__init__.py的内容

    一.告诉Django用pymysql来代替默认的MySQLdb(在__init__.py里) import pymysql #告诉Django用pymysql来代替默认的MySQLdb pymysql ...

  5. git 学习(3) ----- 代码共享和多人协作

    当我们开发项目的时候,项目会越来越大,就有可能需要其它同事进行参与,甚至进行开源,这时就需要找一个地方把代码存放起来,好供其它人下载并开发.这个地方,最好放到服务器上,因为只要能上网,就可以获取到, ...

  6. Nginx 11阶段的顺序处理

    L49

  7. CSS3选择器p:nth-child和p:nth-of-type之间的差异

    稍微自己理解了一下,感觉就是:nth-of-type似乎有种族歧视,界限划分很清晰.在同一个国家(父级)中的时候,nth-of-type指认自己人排名,nth-child全都算在内排名,阿T的要求真的 ...

  8. [luogu3380][bzoj3196]【模板】二逼平衡树【树套树】

    题目地址 [洛谷传送门] 题目大意 区间查询k的排名,查找k排名的数,单点修改,区间前驱,区间后继. 感想 真的第一次写树套树,整个人都不对了.重构代码2次,发现样例都过不了,splay直接爆炸,可能 ...

  9. jmeter笔记(1)--原理,下载与安装

    Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域. 它可以用于测试静态和动态资源,例如静态文 ...

  10. Java异常知识整理_处理异常时的性能开销

    1.首先列两个从别的地方看到的说法: try-catch代码段会产生额外的性能开销,或者换个角度说,它往往会影响JVM对代码进行优化,所以建议仅捕获有必要的代码段,尽量不要一个大的try包住整段的代码 ...