C语言(6)打印菱形
2017-07-29 11:12
701 查看
描述
这个菱形大家熟悉吧。
现在要求的是打印这样的菱形:不要*号,要最外层是字母A,然后里一层是B,再里一层是C···这样呢?
输入第一行是一个正整数N(N≤25),代表有N组测试数据。
每一组数据包括一个正整数M(1≤M≤25),表示菱形的半径(直径就是M*2+1)。
输出对于每组数据,输出要求打印的菱形。
样例输入
样例输出
这个菱形大家熟悉吧。
* *** ***** *** *
现在要求的是打印这样的菱形:不要*号,要最外层是字母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; }