标题
金字塔打印
描述
输入一个要打印的字符和打印行数N(N≤10),使用函数tow()完成字符金字塔的打印。打印结果要求:1、打印输入的字符;2、逐行增加一个字符;3、每行均为中心对称分布;4、整体为中心对称分布;5、字符之间空一格空格,字符之前加空格;6、每一行最后一个字符后,不再有空格。
输入说明
输入一个字符和打印行数N(N≤10)。
输出说明
格式输出:打印字符金字塔,每行增加一个,字符之间空一格,中心对称分布。
输入样例
a
4
输出样式
a
a a
a a a
a a a a
提示
注意打印和排布方式要求,使用子函数实现打印。
/*
1.输入n,c
2.运行tow()函数
3.分析金字塔组成:
1.共n行,2*n-1列
2.第一行:c位于第n列
第二行:c位于第n-1和n+1列
.
.
.
第n行:c位于第1列,第3列...第2*i-1列...第n列
所以第i行有i个c,第一个c均在第n+1-i列,
从该列开始,列数每递增2,就有输出一个c
3.在第一个c左侧,最后一个c右侧以及c与c之间输出空格即可完成金字塔
*/
#include<stdio.h>
void tow(char c,int n){
int j = 0;//j从0开始,用j+1表示行数
while( j != n){
j++;
for(int i = 0 ; i <2*n-1 ; i++){
if(i < n-j || i > n+j){
printf(" ");
}//在n-j左侧和n+j右侧输出空格
for(int q = 0 ; q < j ; q++){
if( i == n - j + 2 * q){
printf("%c",c);
if(q == j - 1){
break;
}
printf(" ");//在c与c之间输出空格
}
}
}
printf("\n");
}
}
int main(){
char c;
int n;
scanf("%c",&c);
scanf("%d",&n);
tow(c,n);
return 0;
}