您的位置:首页 > 编程语言 > C语言/C++

C语言(6)打印菱形

2017-07-29 11:12 701 查看
描述

这个菱形大家熟悉吧。
*
***
*****
***
*


现在要求的是打印这样的菱形:不要*号,要最外层是字母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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: