用c语言编辑一个等腰三角形的讲解过程

 我来答
百度网友e096309
推荐于2017-11-23 · TA获得超过1327个赞
知道小有建树答主
回答量:501
采纳率:96%
帮助的人:412万
展开全部

等腰三角形的话。。。是类似于下面这样的东东吗?

  *
 ***
*****

这个重在分析,程序写起来很简单。

因为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");
     }
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式