涂小天和他的画

一道循环结构题

题目描述:

涂小天是个画家,他希望有一天他的画能让心仪的她看到。

只是后来她有了他,他却只有他的画,他望着他的画,默默的发呆。

可惜做题的你,画不出他画的她,所以,我们只好画点简单的画,或许有一天,你就会遇到画里她/他吗?

因此我们规定画画的内容:输入一个正整数 n(n为奇数),输出高度为 n 的菱形,例如 n = 5 时,输出

*
 *
***
 *
  *
 ***
*****
 ***
  *

基础的循环结构应用,我觉得重点在于对循环内变量的设计和打印换行符的位置。做题思路是观察总结规律,把其变为数学模型再用for循环输出。

因为我数学不太好,不太能直接对一个菱形总结出一个数学模型,所以我才用了将之分为三个部分的方式来完成一个菱形。分别是:上部分,中间特殊行,下部分。对简单的规律总结主要是看变化量,可以得到上半部分的行数变化是0,1,2;归纳总结可以总结为输入正整数n/2行,对内部分析,上半部分空格的变化量是-1,使用外层for循环变量充当数学模型中的x,可以写出:y=-x+1+n/2;对于上半部分的字符可以总结为:y=2x-1;然后是重要的在两个内循环for外输出换行符,再在两个内循环所在外循环外放置单个for循环输出中间一行,这一行比较基础,后面的重复观测——统计归纳数学模型——转化为程序语言这里不做多阐述。

附上我写的代码,刚入门菜鸟一直,如果有改进建议欢迎评论区讨论。

#include<cstdio>
void rhombus (int a)
{
	for(int b=1;b<=a/2;b++)
	{
		for(int c=1;c<=-b+a/2+1;c++)//打印空格 
		{
			printf(" ");
		}
		for(int d=1;d<=2*b-1;d++)
		{
			printf("*");
		}
		printf("\n");
	}
		for(int c=1;c<=a;c++)
		{
			printf("*");
		}
		printf("\n");
	for(int b=1;b<=a/2;b++)
	{
		for(int d=1;d<=b;d++)
		{
			printf(" ");
		}
		for(int c=1;c<=a-2*b;c++)
		{
			printf("*");
		}
			printf("\n");
	}
}
int main()
{
	int T,a;
	scanf("%d",&T);
	for(int b=1;b<=T;b++)
	{
		scanf("%d",&a);
		rhombus(a);
	}
	return 0;
}

分享结束,谢谢观看。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值