c语言编写程序:本题目要求读入空心等腰梯形的高度(也是首行的字母数)和空心等腰梯形起始字母,然后输出空心字符等腰梯形。所谓“空心梯形”是指:首尾行是由字母组成,中间行数均为两端为字母、中间为空格的字符串构成,每行的字符串中心对齐;两行字符串长度差2,且字母从给定的起始字母逐一递增。 输入格式: 输入在一行中给出起始字母(范围为英文大写字母A-G)和等腰梯形的高度(为不超过7的正整数)。 输出格式: 输出空心字符等腰梯形。 输入样例: 例如: 3 B 输出样例: 例如: BBB C C DDDDDDD
时间: 2023-05-30 12:02:23 浏览: 85
#include <stdio.h>
int main()
{
int n;
char c;
scanf("%d %c", &n, &c);
// 计算梯形底部的长度
int bottom = 2 * n - 1;
// 输出上半部分
for (int i = 1; i <= n; i++) {
// 输出空格
for (int j = 1; j <= n - i; j++) {
printf(" ");
}
// 输出字母
for (int j = 1; j <= 2 * i - 1; j++) {
// 首尾行全部输出字母
// 中间行只输出首尾两个字母
if (i == 1 || i == n || j == 1 || j == 2 * i - 1) {
printf("%c", c++);
} else {
printf(" ");
c++;
}
}
printf("\n");
}
// 输出下半部分
for (int i = n + 1; i <= 2 * n - 1; i++) {
// 输出空格
for (int j = 1; j <= i - n; j++) {
printf(" ");
}
// 输出字母
for (int j = 1; j <= 2 * bottom - 2 * i + 1; j++) {
// 首尾行全部输出字母
// 中间行只输出首尾两个字母
if (i == 1 || i == 2 * n - 1 || j == 1 || j == 2 * bottom - 2 * i + 1) {
printf("%c", c++);
} else {
printf(" ");
c++;
}
}
printf("\n");
}
return 0;
}
阅读全文