输入整数n值和首字母,输出以首字母为中心,边长为n的X形。其中,上两条边上字母递增,下两条边上字母递减。且认为字母是循环的,即Z与A相邻。
若输入的不是大写字母,则输出”input error"提示。
输入:(格式 "%d %c")
4 A
输出:
D D
C C
B B
A
Z Z
Y Y
X X
#include "stdio.h"
int main(void)
{
int i, n, cnt = -1, j, temp;
char in[1];
char bank[26] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
scanf("%d %c", &n, &in[0] );
for (i = 0; i < 26; i++){
if(in[0] == bank[i]){
cnt = i;
break;
}
}
if(cnt == -1){
printf("input error.\n" );
}
else{
temp = cnt+n-1;
temp = temp % 26;
for (i = 2*n-1; i >= 3; i-= 2) {
for (j = 1; j <= (2*n+1-i)/2-1; j++) {
printf(" ");
}
printf("%c", bank[temp]);
for (j = 1; j <= i-2; j++) {
printf(" ");
}
printf("%c\n", bank[temp] );
temp-= 1;
if (temp < 0) temp = 25;
else temp = temp % 26;
}
for (i = 1; i <= n-1; i++) {
printf(" ");
}
printf("%c", bank[cnt]);
printf("\n");
for (i = 3; i <= 2*n-1; i+= 2) {
cnt-= 1;
if (cnt < 0) cnt = 25;
else cnt = cnt % 26;
for (j = 1; j <= (2*n+1-i)/2-1; j++) {
printf(" ");
}
printf("%c", bank[cnt]);
for (j = 1; j <= i-2; j++) {
printf(" ");
}
printf("%c\n", bank[cnt] );
}
}
}