1056 织花纹布

Description:

输入中含有若干组数据,每组数据由四部分组成,第一个是花纹字符,后面三个是整数,分别表示宽度(<80的奇数),高度(≤40)和重复度(≤20)。请编程画出该花纹。

Sample Input:

W 9 17 1
E 15 6 2

Sample Output:

WWWWWWWWW
 W W W W W
  WWWWWWWWW
   W W W W W
    WWWWWWWWW
     W W W W W
      WWWWWWWWW
       W W W W W
        WWWWWWWWW
       W W W W W
      WWWWWWWWW
     W W W W W
    WWWWWWWWW
   W W W W W
  WWWWWWWWW
 W W W W W
WWWWWWWWW

EEEEEEEEEEEEEEE
 E E E E E E E E
  EEEEEEEEEEEEEEE
  E E E E E E E E
 EEEEEEEEEEEEEEE
E E E E E E E E
 EEEEEEEEEEEEEEE
  E E E E E E E E
  EEEEEEEEEEEEEEE
 E E E E E E E E
EEEEEEEEEEEEEEE


source:

#include <iostream>  
  
using namespace std;  

void print(int sp,char* pc)
{
	int i;
	for(i=0;i<sp;++i)
		cout<<' ';
	cout<<pc<<endl;
}  

int main(int argc, char* argv[])  
{  
	char c;
	int w,h,re;
	while(cin>>c>>w>>h>>re)
	{
		int i=0;
		bool b=true;
		char **pc=new char*[2];
		pc[0]=new char[w+1];
		pc[1]=new char[w+1];
		for(i=0;i<w;++i)
		{
			pc[0][i]=c;
			if((i+1)%2==0)
				pc[1][i]=' ';
			else
				pc[1][i]=c;
		}
		pc[0][w]='\0';
		pc[1][w]='\0';
		i=0;
		while(re>0)
		{
			for(;i<h/2;++i)
				print(i,pc[int(b=!b)]);
			if(h%2!=0)
				print(h/2,pc[int(b=!b)]);
			for(--i;i>=0;--i)
				print(i,pc[int(b=!b)]);
			--re;
			i+=2;
		}
		cout<<endl;
		delete pc[0];
		delete pc[1];
		delete pc;
	}
	return 0;
}  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值