用c语言编辑一个等腰三角形的讲解过程
1个回答
展开全部
等腰三角形的话。。。是类似于下面这样的东东吗?
*
***
*****
这个重在分析,程序写起来很简单。
因为c语言的输出一定是按行输出的,所以可以按行分析三角形每行的字符构成:
总共3行的等腰三角形:
* 第1行,需要输出2个空格,1个*
*** 第2行,需要输出1个空格,3个*
***** 第3行,需要输出0个空格,5个*
所以是否能够根据上面的分析,得出结论呢?再来分析一个5行的三角形:
总共5行的等腰三角形:
* 第1行,需要输出4个空格,1个*
*** 第2行,需要输出3个空格,3个*
***** 第3行,需要输出2个空格,5个*
******* 第4行,需要输出1个空格,7个*
********* 第5行,需要输出0个空格,9个*
然后好像有感觉了:要输出一个n行的等腰三角形,那么:
每行需要输出的空格数是个递减的等差数列:space(i) = n - i, 其中行号i = 1,2...
每行需要输出的*数也是个等差数列: star(i) = 2 * i - 1, 其中行号i = 1,2...
所以有了公式,程序的话应该也不难了:
void printTriangle(int n) {
int i, j, k, space, star;
// 总共要打印n行
for(i=1; i<=n; i++) {
// 先打印n-i个空格
space = n - i;
for(j=0; j<space; j++) {
printf(" ");
}
// 然后打印2i-1个*
star = 2 * i - 1;
for(k=0; k<star; k++) {
printf("*");
}
// 换行
printf("\n");
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询