输出图形
输入图形的高度h和一个大写字母ch,在屏幕上由循环的字母构成”X”图形。
要求:输出的字符是循环的,既当字母循环到Z时,下一个字母为A。
还有一个条件,必须跳过字母表中的部分字母(既跳过字母:C、H、E、N、T、R、Y)
样例输入1: 4 A
样例输出2:
ABDFGIJ
K L
M O
P
Q S
U V
WXZABDF
样例输入2:4 C
样例输出:
DFGIJKL
M O
P Q
S
U V
W X
ZABDFGI
完整代码如下:
#include
#include
char *alpha = "ABDFGIJKLMOPQSUVWXZ";
char alpha_out(int n){ //循环字符输出
return *(alpha + n % 19);
}
int alpha_index(char c){ //查找起始位置
int i = 0;
while(c != *(alpha+i) && (c+1) != *(alpha+i)) i++;
return i;
}
void draw(int n, int index){
int i , j;
for(i = 0; i < 2*n - 1; i++){
for(j = 0; j < 2*n - 1; j++){
if(i == 0 || i == 2*n -2 || i ==j || i+j == 2*n - 2)
printf("%c", alpha_out(index++));
else printf(" ");
}
printf("\n");
}
}
int main(){
int height, i, j, index = 0;
char c;
scanf("%d %c", &height, &c); //注意%d%c中间需要空格
index = alpha_index(c);
draw(height, index);
system("pause");
}
×用微信扫描并分享