C语言——画矩形(可控制行列,空心和实心)

这是我们C语言老师发布的一次的作业,本人觉得十分有意思,于是发了这篇博客


代码如下:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
	int h, w, b;//h,w分别为矩形的高和宽,b控制打印空心矩形还是实心矩形。
	int m = 0; int n = 0;//m,n时个人用来换行的
	char a;//a表示用来画图的矩形的符号
	scanf("%d %d%c%d", &h , &w, &a, &b);
	if (b == 0)//b为0时打印空心矩形
	{
		for (int i = 1; i <= h; i++)//用i,j分别控制行和列
		{
			printf("%c", a);
		}
		printf("\n");
		for (int i = 1; i <= w; i++)
		{
			printf("%c", a);
			for (int i = 1; i <= w-2; i++)
			{
				printf(" ");
			}
			m++;
			if (m % 2 == 0)printf("\n");
			
		}
		for (int i = 1; i <= h; i++)
		{
			printf("%c", a);
		}
	}
	else if (b == 1)//b为1时打印实心矩形
	{
		for (int i = 1; i <= w; i++)
		{
			for (int j = 1; j <= h; j++)
			{
				printf("%c", a);
			}
			printf("\n");
		}
	}
	return 0;
}

当然我们打印空心矩形时,由于空心矩形空心部分只有前面和后面需要打印符号,其余都是空格,可用i=1或 i=w或j=1或j=h时打印字符,其余情况打印空格,每次打印完一次\n一次。

代码如下:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
	int h, w, b;//h,w分别为矩形的高和宽,b控制打印空心矩形还是实心矩形。
	char a;//a表示用来画图的矩形的符号
	scanf("%d %d%c%d", &h , &w, &a, &b);
	if (b == 0)//b为0时打印空心矩形
	{
		for (int i = 1; i <= w; i++)
		{
			for (int j = 1; j <= h; j++)
			{
				if (i == 1 || i == w || j == 1 || j == h)//确保第一行,最后一行,第一列和最后一列打印字符
					printf("%c", a);
				else
					printf(" ");//其余打印空格
			}
			printf("\n");
		}
	}
	else if (b == 1)//b为1时打印实心矩形
	{
		for (int i = 1; i <= w; i++)
		{
			for (int j = 1; j <= h; j++)
			{
				printf("%c", a);
			}
			printf("\n");
		}
	}
	return 0;
}

当然,也可以用while循环,这里不再赘述。


//各位对这篇博客有什么好的建议吗,比如写作技巧或者简化之类的。可以发我共同进步,这篇由于是自己独立完成的作业就厚颜无耻地发原创了。

  • 20
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值