输出三角阵

代码:

include<stdio.h>

int main()
{
char a = 'A';
char ch;
scanf("%c", &ch);
int i, j, k, l,n,m,h;
j = (int)ch-'A';
n = j; //定义变量,并且输入,此题变量有点多可以多定义几个,不够在补,多了删,并且有几个为循环变量,可以重复使用
for (i = 0; i <= j; i++) { //第一层循环,控制行数
for (k = 0; k <= n; k++) //第二层循环,控制子母前的空格数
printf(" ");
printf("%c", a);
for (l = 0; l < 2*i-1; l++) //第三层循环,控制内部的空格
printf(" ");
if (l != 0)printf("%c", a); //判断要不要在后面输出一个a
printf("\n");
a++; //使三角阵由A,B,C......递增
n--;
m = i;
h = j;
}
a = a - 2; //因为最后一层循环a多加了1,比输入的多1,又因为下三角的比输入的少1,所以a-2
n = n - 1; //下三角行数
for (i = 0; i <m; i++) {
for (k = 0; k<=i+1; k++) //第一层循环,控制字符前的空格数,k<=i+1,比较重要的是这个由下三角第一个循环控制有关的
printf(" ");
printf("%c", a);
for (l = 0; l <= h; l++) //第二层循环,控制字符中间的空格数,利用上三角最后记录的h,h在最后减2,因为在下三角型中每一行比上一行少两个空格
printf(" ");
if (a!='A')printf("%c", a);
printf("\n");
a--; //使三角阵由....B,A递减
h -= 2;
}
return 0;
}

posted @ 2020-11-22 23:57  -*+  阅读(115)  评论(0编辑  收藏  举报