请编写递归函数,显示等腰三角形(向上)。
函数原型
void UpIso(int height, char symbol);
说明:参数 height 为等腰三角形的高,symbol 为显示字符。函数将在屏幕下显示高度为 height 宽度为 2 * height - 1 由字符 symbol 组成的等腰三角形(向上)。若 height ≤ 0,则不输出。
提示:需要利用前面作业中的 Show 函数,还可根据需要增加自用函数。
要求:不要使用循环语句。
裁判程序
#include <stdio.h>
void Show(int number, char symbol);
void UpIso(int height, char symbol);
int main()
{
int n;
char s;
scanf("%d %c", &n, &s);
UpIso(n, s);
putchar('\n');
return 0;
}
......
/* 你提交的代码将被嵌在这里 */
输入样例1
-3 #
输出样例1
输入样例2
5 *
输出样例2
*
***
*****
*******
*********
关联习题:重复显示字符(递归版)。
我们不妨再写一个函数,加一个参数表示空格个数
代码如下:
void UpIso1(int height,int space,char symbol)
{
if(height>0)
{
UpIso1(height-1,space+1,symbol);
Show(space,' ');
Show(2*height-1,symbol);
putchar('\n');
}
}
void UpIso(int height, char symbol)
{
UpIso1(height,0,symbol);
}