这是我们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循环,这里不再赘述。
//各位对这篇博客有什么好的建议吗,比如写作技巧或者简化之类的。可以发我共同进步,这篇由于是自己独立完成的作业就厚颜无耻地发原创了。