1:冰激凌

题目描述:

炎炎夏日,翟神最喜欢买一个火炬冰激凌解暑。现在让我们画出这个冰激凌。

给出冰激凌的层数,还有第一层的宽度和每层的高度,画出一个冰激凌。

1. 冰淇淋由头部和甜筒两个部分组成。

2. 注意每个冰激凌的头部都是由相同且固定的形状构成:

 *

***

3. 冰激凌从头部往下开始计算层数。每一层都是高度相同的矩形,宽度逐层递增,且对于所有冰激凌,递增速度相同。

4. 在冰激凌下面,是甜筒部分,甜筒是空心的且最宽的部分和冰激凌头部最宽的部分相同。对于所有冰激凌,甜筒部分的切斜角度是一样的。

输入:

输入的三个数分别为冰激凌的层数,冰激凌第一层的宽度,以及冰激凌每层的高度。

输出:

画出的冰激凌。

参考显示的测试用例:

先画出冰激凌头部,然后是三层的矩形冰激凌,最后画出甜筒

测试用例:

测试输入期待的输出时间限制内存限制额外进程
测试用例 1以文本方式显示
  1. 3 5 2↵
以文本方式显示
  1.       *↵
  2.      ***↵
  3.     *****↵
  4.     *****↵
  5.   *********↵
  6.   *********↵
  7. *************↵
  8. *************↵
  9. *           *↵
  10.  *         *↵
  11.   *       *↵
  12.    *     *↵
  13.     *   *↵
  14.      * *↵
  15.       *↵
1秒64M0

代码实现: 

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值