我在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
答案 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
是一个返回其四个参数中最小的一个函数。