思路:找到规律遍历
AC代码:
#include<stdio.h>
int cha(int a,int b){
int t;
if(a>=b){
t=a-b;
}
else{
t=b-a;
}
return t;
}
int main(){
char S;
while(scanf("%c",&S)!=EOF&&S!='#'){
int n=S-'A'+1;
char str[100][100];
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
char s=S;
if(i==j){
str[i][j]=s;
}
int t=cha(i,j);
s=s-t;
str[i][j]=s;
}
}//完成左边上半部分
for(int k=1;k<=n;k++){
for(int i=(2*n-1),j=1;i!=j;i--,j++){
str[k][i]=str[k][j];
}
}//左右对齐
for(int i=1;i<=n;i++){
for(int j=1;j<=(2*n-1);j++){
printf("%c",str[i][j]);
}
printf("\n");
}
//上下对称
for(int i=n-1;i>=1;i--){
for(int j=1;j<=(2*n-1);j++){
printf("%c",str[i][j]);
}
printf("\n");
}
}
}