提交记录 #55
提交时间:2024-10-29 21:56:51
语言:c
状态:Unaccepted
编译情况:编译成功
固定测试点#1:
附加测试点暂不可用
M41【期中测验4】空心字符菱形
#include <stdio.h>
// 获取下一个字符,循环到 'Z' 后回到 'A'
char NChar(char c) {
return (c == 'Z') ? 'A' : c + 1;
}
void printDiamond(int h, char sChar) {
char cChar = sChar;
// 打印上半部分(包括中间行)
for (int i = 0; i < h; i++) {
// 打印左侧空格
for (int j = 0; j < h - i - 1; j++) {
printf(" ");
}
// 打印左侧字符
printf("%c", cChar);
// 打印中间空格
if (i > 0) {
for (int j = 0; j < 2 * i - 1; j++) {
printf(" ");
}
// 打印右侧字符
printf("%c", cChar);
}
printf("\n");
cChar = NChar(cChar);
}
// 打印下半部分
for (int i = h - 2; i >= 0; i--) {
// 打印左侧空格
for (int j = 0; j < h - i - 1; j++) {
printf(" ");
}
// 打印左侧字符
printf("%c", cChar);
// 打印中间空格
if (i > 0) {
for (int j = 0; j < 2 * i - 1; j++) {
printf(" ");
}
// 打印右侧字符
printf("%c", cChar);
}
printf("\n");
cChar = NChar(cChar);
}
}
int main() {
int h;
char sChar;
// 清空输入缓冲区
while (getchar() != '\n');
// 输入高度和起始字符
scanf("%d %c", &h, &sChar);
// 打印菱形图形
printDiamond(h, sChar);
return 0;
}