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

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. pd.read_csv() 、to_csv() 之 常用参数

    本文简单介绍一下read_csv()和 to_csv()的参数,最常用的拿出来讲,较少用的请转到官方文档看. 一.pd.read_csv() 作用:将csv文件读入并转化为数据框形式. pd.read ...

  2. Windows安装Git

    一.安装Git for Windows(又名msysgit)  下载地址: https://git-for-windows.github.io/  在官方下载完后,安装到Windows Explore ...

  3. printf 函数原型

    typedef char *va_list; #define _AUPBND (sizeof (acpi_native_int) - 1) #define _ADNBND (sizeof (acpi_ ...

  4. tcp的连接数量

    转载 单机最大tcp连接数 网络编程 在tcp应用中,server事先在某个固定端口监听,client主动发起连接,经过三路握手后建立tcp连接.那么对单机,其最大并发tcp连接数是多少? 如何标识一 ...

  5. Python @property 方法

    考察 Student 类: class Student(object): def __init__(self, name, score): self.name = name self.score = ...

  6. C语言之四舍五入

    在C语言中,如果进行强制类型转换,它会将所需要取的位数直接提取出来,而其他位数的数字会被直接删除,不会对提取出来的位数有任何影响 所以如果我们需要提高精度,对所取的数进行四舍五入,需要给所需去的数的最 ...

  7. CodeForces Round #545 Div.2

    A. Sushi for Two 代码: #include <bits/stdc++.h> using namespace std; ; ; int a[maxn], vis[maxn]; ...

  8. ubuntu 18.04安装pytorch、cuda、cudnn等

    版权声明:本文为博主原创文章,欢迎转载,并请注明出处.联系方式:460356155@qq.com ubuntu 16.04用了1年多了,18.04版已经发布也半年了,与时俱进,重装Linux系统,这里 ...

  9. PHP之pear包总结

    现在我们开发的时候,尤其是使用框架进行项目开发的时候,都会有一个专门的包管理工具,对,那就是composer,使用这个工具可以简单快速的引入一个代码包,十分快捷好用.接下就总结一下,经常使用到的pea ...

  10. Python——模块——随机模块

    1.引用模块 import random 2.随机整数 random.randint(a,b) 3.随机浮点数 random.uniform(a,b) 4.从列表中随机取元素 random.choic ...