蓝桥杯练习4

这篇文章描述了一个C++程序,用于生成一个n行m列地图,用符号(*)表示宝藏,根据奇偶性规则布局加号(-)、减号(+)和竖线(|)。程序适用于蓝桥杯竞赛,注意处理最后一行的回车问题。
摘要由CSDN通过智能技术生成

假设地图时一个n行m列的方格地图,地图每个格子*代表一个宝藏,比如2行2列的地图如下:

  • **
  • ** 

要构建的房子如下:

输入格式:一行两个整数n,m(0<n,m≤50),分别表示地图行数和列数

按照题目要求给出地图对应的房子

#include<iostream>
using namespace std;
int main()
{
    int n,m;
    cin>>n>>m;
    for(int i=1;i<=2*n+1;i++)    //当输入行数为n时,实际上一共会有2*n+1行,故循环条件为2*n+1
    {
    	if(i%2==1&&i!=2*n+1)    //这里时确保当前行数不是最后一行,因为最后一行是不需要再输入回车符
    	{
    		for(int j=1;j<=2*m+1;j++)   //当输入列数为m时,实际上会有2*m+1列
    		{
    			if(j%2==1)
    			    cout<<'+';    //在奇数行且奇数列时,输出+号
    			else
    			    cout<<'-';    //在奇数行且偶数列时,输出-号
			}
			cout<<endl;
		}
		else if(i%2==1&&i==2*n+1)    //这里是输出的是最后一行,其实前面那个条件已经不重要了,最后一行一定是奇数行,故有没有i%2==1这个条件都可以
		{
			for(int j=1;j<=2*m+1;j++)
    		{
    			if(j%2==1)
    			    cout<<'+';
    			else
    			    cout<<'-';
			} 
		}  //注意,这里是最后一行,故没有回车符
		else   //判断是否为偶数行
		{
			for(int j=1;j<=2*m+1;j++)
    		{
    			if(j%2==1)    //偶数行奇数列输出|
    			    cout<<'|';
    			else
    			    cout<<'*'; //偶数行偶数列输出*
			}
			cout<<endl;   //偶数行永远是最后一行,故永远有回车
		}
	}
	return 0;
 } 
 

注意:我记得蓝桥杯好像对于最后一行是否有回车是有要求的,还是注意一下,以防万一

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值