c语言编写程序:读入空心等腰梯形的高度(也是首行字母数)和空心等腰梯形起始字母,然后输出空心字符等腰梯形,只读入起始字母和等腰梯形的高度,空心等腰梯形是指:首尾两行是由字母组成,中间行数均为两端为字母,中间为空格的字符串组成,每行的字符串中心对齐,两行字符串长度差2,且字母从给定的起始字母逐一递增
时间: 2023-05-22 20:02:35 浏览: 144
以下是 C 语言编写程序读入空心等腰梯形的高度和起始字母,然后输出空心字符等腰梯形的代码:
```
#include <stdio.h>
int main() {
int height;
char start;
printf("请输入等腰梯形的高度和起始字母,中间用空格分隔:\n");
scanf("%d %c", &height, &start);
// 输出首行
for (int i = 0; i < height; i++) {
printf("%c", start+i);
}
printf("\n");
// 输出中间行
for (int i = 2; i < height; i++) {
for (int j = 0; j < height-i; j++) {
printf(" ");
}
printf("%c", start+i-1);
for (int j = 0; j < 2*i-3; j++) {
printf(" ");
}
printf("%c\n", start+i);
}
// 输出末行
for (int i = 0; i < height; i++) {
printf("%c", start+height-1-i);
}
printf("\n");
return 0;
}
```
第二个问题:lua closure factory 完整代码。
以下是 Lua 编写的 closure factory 完整代码:
```
function make_counter()
-- 定义局部变量 count
local count = 0
-- 定义函数 inc_count,实现 count 的自增
local function inc_count()
count = count + 1
return count
end
-- 返回函数 inc_count
return inc_count
end
-- 实例化一个 counter
counter = make_counter()
-- 使用 counter 自增计数器并输出
for i = 1, 10 do
print(counter())
end
```
这段代码利用了 Lua 中的闭包特性,实现了一个计数器,每次调用 counter 函数就会将 count 自增并返回新的计数值。make_counter 函数返回的是一个函数,它维护了一个局部变量 count,这个变量只在该函数内有效,其他的函数不能访问。因此,每个实例化的 counter 都拥有独立的计数器。
阅读全文