描述
这个菱形大家熟悉吧。
*
***
*****
***
*
现在要求的是打印这样的菱形:不要*号,要最外层是字母A,然后里一层是B,再里一层是C···这样呢?
A
ABA
ABCBA
ABA
A
输入
第一行是一个正整数N(N≤25),代表有N组测试数据。
每一组数据包括一个正整数M(1≤M≤25),表示菱形的半径(直径就是M*2+1)。
输出
对于每组数据,输出要求打印的菱形。
样例输入
1
2
样例输出
A
ABA
ABCBA
ABA
A
#include <stdio.h>
/*菱形*/
int main(void)
{
int i,j;
int n,m,ch;
scanf("%d", &m);
while(m){
scanf("%d", &n);
/*前半部分*/
for(i=0; i<n+1; i++){
for(j=0; j<2*n+1; j++){
if(j >= n-i && j <= n){
/*该行的第ch个打印的数据*/
ch = j-(n-i);
/*打印的前直角三角形*/
printf("%c", 65+ch);
}else if(j>n && j <= n+i) {
ch--;
/*打印的后直角三角形*/
printf("%c", 65+ch);
}else{
printf(" ");
}
}
printf("\n");
}
/*后半部分*/
for(i=0; i<n; i++){
for(j=0; j<2*n+1; j++){
if(j < n+1 && j > i){
ch = j-i-1;
printf("%c", 65+ch);
}else if(j<2*n-i && j > n){
ch--;
printf("%c", 65+ch);
}else if(j <= i)
printf(" ");
}
printf("\n");
}
m--;
}
return 0;
}