题目 1537: 栅格打印问题

该博客介绍了一个C++程序,用于根据用户输入的高度和宽度打印由'+'、'-'和'|'组成的栅格图形。程序首先检查输入是否合法(非零且非负),然后根据奇偶行分别输出框线和内部的竖线。易错点在于当高度或宽度为0或负数时不输出栅格。
摘要由CSDN通过智能技术生成

题目

编写一个程序,输入两个整数,作为栅格的高度和宽度,然后用“+”、“-”和“|”这三个字符来打印一个栅格。

输入
输入只有一行,包括两个整数,分别为栅格的高度和宽度。

输出
输出相应的栅格。

样例输入

3 2

样例输出

+-+-+
| | |
+-+-+
| | |
+-+-+
| | |
+-+-+

解题思路

按照输入的行列和输出规律解题即可。

易错点

由于本题是输出“栅格”,也就是可以类比为网格,当网格的高度或者宽度有一个0或者有为负数的时候,不可以输出栅格(包括任何一条框线)。(我的答案起初便是此处有错,64分)

代码

#include<stdio.h>
int main()
{
	int m,n,i,j;
	scanf("%d %d",&m,&n);
	if (m!=0 && n!=0)
	{
    	m = m*2+1;
	    for (i=1;i<=m;i++)
	    {
	        if (i%2==1)//奇数行
	        {
	            for (j=1;j<=n;j++)
    	            printf("+-");
    	        printf("+");
	        }
	        else
	        {
	            for (j=1;j<=(2*n+1);j++)
	            {
	                if (j%2==1)
	                    printf("|");
	                else
	                    printf(" ");
	            }
	        }
	        if (i!=m)
	            printf("\n");
	    }
	}
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值