zoukankan      html  css  js  c++  java
  • 历届试题 打印十字图

    问题描述

    小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示:
    在这里插入图片描述
    对方同时也需要在电脑dos窗口中以字符的形式输出该标志,并能任意控制层数。

    输入格式

    一个正整数 n (n<30) 表示要求打印图形的层数。

    输出格式

    对应包围层数的该标志。

    样例输入1

    1

    样例输出1

    在这里插入图片描述

    样例输入2

    3

    样例输出2

    在这里插入图片描述

    提示

    请仔细观察样例,尤其要注意句点的数量和输出位置。

    代码

    #include <iostream>
    using namespace std;
    char fan(char i)
    {
    	return i=='$'?'.':'$';
    }
    int main()
    {
    	int n;
    	cin>>n;
    	char ten[5+n*4+1][5+n*4+1];
    	for(int i=1;i<=5+n*4;i++)
    	{
    		for(int j=1;j<=5+n*4;j++)
    		{
    			ten[i][j]=' ';
    		}
    	}
    	for(int i=1;i<=(5+4*n);i++)
    	{
    		if(i>=3&&i<=5+4*n-2)
    		{
    			ten[1][i]='$';
    			ten[i][1]='$';
    		}
    		else
    		{
    			ten[1][i]='.';
    			ten[i][1]='.';
    		}
    	}
    	for(int j=1;j<=(5+4*n);j++)
    	{
    		if(j>=3&&j<=5+4*n-2)
    		{
    			ten[5+4*n][j]='$';
    			ten[j][5+4*n]='$';
    		}
    		else
    		{
    			ten[j][5+4*n]='.';
    			ten[5+4*n][j]='.';
    		}
    	}
    	ten[1][1]='$';
    	ten[1][5+4*n]='$';
    	ten[5+4*n][1]='$';
    	ten[5+4*n][5+4*n]='$';
    	for(int i=1;i<(5+4*n)/2;i++)
    	{
    		for(int j=1;j<(5+4*n)/2;j++)
    		{
    			ten[i+1][j+1]=fan(ten[i][j]);
    		}
    	}
    	for(int i=1;i<(5+4*n)/2;i++)
    	{
    		for(int j=(5+4*n);j>(5+4*n)/2+2;j--)
    		{
    			ten[i+1][j-1]=fan(ten[i][j]);
    		}
    	}
    	for(int i=(5+4*n);i>(5+4*n)/2+2;i--)
    	{
    		for(int j=1;j<(5+4*n)/2;j++)
    		{
    			ten[i-1][j+1]=fan(ten[i][j]);
    		}
    	}
    	for(int i=(5+4*n);i>(5+4*n)/2+2;i--)
    	{
    		for(int j=(5+4*n);j>(5+4*n)/2+2;j--)
    		{
    			ten[i-1][j-1]=fan(ten[i][j]);
    		}
    	}
     	ten[1][1]='.';
     	ten[1][5+n*4]='.';
     	ten[5+n*4][1]='.';
     	ten[5+n*4][5+n*4]='.';
    	int top=(5+n*4)/2-2,down=(5+n*4)/2+4,left=(5+n*4)/2-2,right=(5+n*4)/2+4;
    	while(top>=1)
    	{
    		ten[top][(5+n*4)/2+1]='.';
    		ten[top-1][(5+n*4)/2+1]='$';
    		top-=2;
    	}
    	while(down<(5+4*n+1))
    	{
    		ten[down][(5+n*4)/2+1]='.';
    		ten[down+1][(5+n*4)/2+1]='$';
    		down+=2;
    	}
    	while(left>=1)
    	{
    		ten[(5+n*4)/2+1][left]='.';
    		ten[(5+n*4)/2+1][left-1]='$';
    		left-=2;
    	}
    	while(right<(5+4*n+1))
    	{
    		ten[(5+n*4)/2+1][right]='.';
    		ten[(5+n*4)/2+1][right+1]='$';
    		right+=2;
    	}
    	ten[(5+n*4)/2+1][(5+n*4)/2+1]='$';
    	ten[(5+n*4)/2-1][(5+n*4)/2+1]='$';
    	ten[(5+n*4)/2][(5+n*4)/2+1]='$';
    	ten[(5+n*4)/2+2][(5+n*4)/2+1]='$';
    	ten[(5+n*4)/2+3][(5+n*4)/2+1]='$';
    	ten[(5+n*4)/2+1][(5+n*4)/2-1]='$';
    	ten[(5+n*4)/2+1][(5+n*4)/2]='$';
    	ten[(5+n*4)/2+1][(5+n*4)/2+2]='$';
     	ten[(5+n*4)/2+1][(5+n*4)/2+3]='$';
    	for(int i=1;i<=5+n*4;i++)
    	{
    		for(int j=1;j<=5+n*4;j++)
    		{
    			printf("%c",ten[i][j]);
    		}
    		cout<<endl;
    	}
    	return 0;
    }
    
  • 相关阅读:
    解决PKIX:unable to find valid certification path to requested target 的问题
    Linux 上的常用文件传输方式介绍与比较
    用VNC远程图形化连接Linux桌面的配置方法
    红帽中出现”This system is not registered with RHN”的解决方案
    linux安装时出现your cpu does not support long mode的解决方法
    CentOS SSH配置
    es6扩展运算符及rest运算符总结
    es6解构赋值总结
    tortoisegit安装、clon、推送
    es6环境搭建
  • 原文地址:https://www.cnblogs.com/AlexKing007/p/12338820.html
Copyright © 2011-2022 走看看