使用C中的for循环绘制多个矩形

时间:2014-11-25 11:40:49

标签: c if-statement for-loop

我在C中编写了一个程序,它获取高度和宽度或矩形,并按如下方式打印: 第一个边框包含字母a,第二个边框包含字母b,第三个边框包含字母c,依此类推。

看起来应该是这样的:

aaaaaa 
abbbba 
abccba 
abccba
abbbba 
aaaaaa 

代码:

int height, width, letter=97, counter; //ascii value for a
int i, j;

scanf("%d%d", &height, &width);

for (i=1 ; i <= height ; i++)
{
    for (j=1 ; j <= width ; j++)
    {
            if (i == 1 || i == height || j == 1 || j == width)
                printf("%c", letter);
            else
            {
                if (i == 1+1 || i == height-1 || j == 1+1 || j == width-1)  
                    printf("%c", letter+1);                                 
                else
                    printf("%c", letter+1+1);
            }
    }
    printf("\n");
}

system("pause");

可悲的是,我无法找到如何使if循环多次工作的方法。我只能输入我想要的次数。 我该如何制作一个&#34; counter&#34;运行if多次的else的变量,所以我可以制作更多的字母?

我尝试制作一个可以在if语句中使用的计数器变量,而不是将i == 1+1设为i == 1+counter

1 个答案:

答案 0 :(得分:1)

你不需要两个以上的循环来执行此操作(以下是未经测试但应该给你的想法):

for (i = 1; i <= height ; i++) {
   for (j = 1; j <= width ; j++) {
      printf("%c", min4(i - 1, j - 1, height - i, width - j) + 'a');
   }
}

这里,min4是一个返回其四个参数中最小的一个函数。