| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 14862 人关注过本帖
标题:请教老师大侠:c语言输出等腰三角形
只看楼主 加入收藏
learnerok
Rank: 2
等 级:论坛游民
帖 子:387
专家分:47
注 册:2011-5-21
结帖率:91.67%
收藏
已结贴  问题点数:20 回复次数:18 
请教老师大侠:c语言输出等腰三角形
请教老师大侠,多谢指导!!!

下面的等腰三角形代码,我有些不明白的问题:

1. 为什么 k=1,l=1; 需要设初值,而i,j,不需要?

2. 如果更改 k 的初值 = 10,并更改后面 f 循环语句条件 的 l=l-1 值,比如

for(l=k;l>=1;l=l-10) , 则输出:
   *
  **
 **
**


for(l=k;l>=1;l=l-9) , 则输出:  
   **
  **
 **
**


for(l=k;l>=1;l=l-8) , 则输出:
   **
  **
 **
**


for(l=k;l>=1;l=l-7) , 则输出:
   **
  **
 **
***


for(l=k;l>=1;l=l-6) , 则输出:
   **
  **
 ***
***


for(l=k;l>=1;l=l-5) , 则输出:
   **
  ***
 ***
****


for(l=k;l>=1;l=l-4) , 则输出:
   ***
  ***
 ****
****


for(l=k;l>=1;l=l-3) , 则输出:
   ****
  ****
 *****
******


for(l=k;l>=1;l=l-2) , 则输出:
   *****
  ******
 *******
********


for(l=k;l>=1;l=l-1) , 则输出:
   **********
  ************
 **************
****************


-----------------------------
上面的输出内容好像没有规律呀,比如当数值为 9 和 8 时, 输出相同。
如何编程序时,知道输出的到底是什么呢?

      
等腰三角形的输出代码:
------------------------------------------  
void main()
{
int i,j,k=1,l=1;
   
    for(i=4;i>=1;i=i-1)
    {
            for(j=i-1;j>=1;j=j-1)
            {
             printf(" ");
            }
              
            for(l=k;l>=1;l=l-1)
            {
             printf("*");
            }
     
     k=k+2;
     printf("\n");
    }
}

[ 本帖最后由 learnerok 于 2011-12-5 17:37 编辑 ]
搜索更多相关主题的帖子: c语言 三角形 
2011-12-05 15:05
原味好
Rank: 4
来 自:西安
等 级:业余侠客
帖 子:59
专家分:250
注 册:2011-11-29
收藏
得分:3 
你把for循环语句执行的顺序搞清楚了,自然就知道为什么会这样了;
        比如for(表达式1;表达式2;表达式3)
                语句1;
它的执行顺序是:
            先执行表达式1;再执行表达式2;
                    再来执行语句1;在又跳到表达式3;再执行表达式2;
                    再来执行语句1;在又跳到表达式3;再执行表达式2;
                    。。。。。。。。。。。。。。。。。。。。。。。
                    表达式2是循环条件 ,如果表达式2为假,就跳出循环;否则,继续循环
                    
2011-12-05 15:21
learnerok
Rank: 2
等 级:论坛游民
帖 子:387
专家分:47
注 册:2011-5-21
收藏
得分:0 
感谢 原味好 老师 指导!!

让我好好想想,感到很挠头啊
2011-12-05 15:31
yu376021
Rank: 2
等 级:论坛游民
帖 子:41
专家分:68
注 册:2011-11-11
收藏
得分:2 
i,j是确定顶点及搞的变量的变量,可以随意定义,以为最低要输出三行,所以i>=3,而l,k必须定义1,因为第一次要一个点;
  *
 ***
*****
l=l-1等价于l--,步长为一,我就不知道你那个l=l-10是什么意思
2011-12-05 15:47
learnerok
Rank: 2
等 级:论坛游民
帖 子:387
专家分:47
注 册:2011-5-21
收藏
得分:0 
以下是引用yu376021在2011-12-5 15:47:22的发言:

i,j是确定顶点及搞的变量的变量,可以随意定义,以为最低要输出三行,所以i>=3,而l,k必须定义1,因为第一次要一个点;
  *
 ***
*****
l=l-1等价于l--,步长为一,我就不知道你那个l=l-10是什么意思

感谢 yu376021老师!!!

l=l-10 是我随便给的,目的是想试试程序,变化数值会发生什么变化,以便搞懂变量和函数。
2011-12-05 17:24
luchar
Rank: 9Rank: 9Rank: 9
来 自:南京
等 级:蜘蛛侠
帖 子:279
专家分:1263
注 册:2011-11-3
收藏
得分:5 
程序代码:
#include<stdio.h>
int main()
{
    int i,j,n;
    printf("请输入等腰三角形的大小n [1<n<40]:");
    scanf("%d",&n);
    for (i=1;i<=n;i++)
    {
        for(j=0;j<n-i;j++)
            printf(" ");
        for (j=1;j<=i;j++)
            printf("*");
        for (j=i-1;j>0;j--)
            printf("*");
        printf("\n");
    }
    return 0;
}
2011-12-05 20:57
wang155423
Rank: 6Rank: 6
等 级:侠之大者
帖 子:216
专家分:408
注 册:2011-9-4
收藏
得分:0 
程序代码:
#include<stdio.h>
void main()
{
    int i,j,n;
    printf("请输入等腰三角形的大小n ");
    scanf("%d",&n);
    for (i=1;i<=n;i++)
    {
        for(j=0;j<n-i;j++)
            printf(" ");
        for (j=1;j<=2*i-1;j++)
            printf("*");
        printf("\n");
    }
}
2011-12-05 22:03
wang155423
Rank: 6Rank: 6
等 级:侠之大者
帖 子:216
专家分:408
注 册:2011-9-4
收藏
得分:3 
再加点难度,输出这样的等腰三角形呢,如何实现 ,也就是只输出边界线。。。
   *
  * *
 *   *
*******
2011-12-05 22:26
luchar
Rank: 9Rank: 9Rank: 9
来 自:南京
等 级:蜘蛛侠
帖 子:279
专家分:1263
注 册:2011-11-3
收藏
得分:5 
回复 8楼 wang155423
程序代码:
#include<stdio.h>
int main()
{
    int i,j,n;
    printf("请输入等腰三角形的大小n [1<n<40]:");
    scanf("%d",&n);
    for (i=1;i<=n;i++)
    {
    if(i==1)
    {
        for(j=1;j<n;j++)
        printf(" ");
        printf("*\n");
    }
    else if(i==n)
    {
        for(j=1;j<2*n;j++)
        printf("*");
        printf("\n");
    }
    else
    {
        for(j=0;j<n-i;j++)
        printf(" ");
        printf("*");            
        for (j=n-i+2;j<n+i-1;j++)
        printf(" ");
        printf("*\n");
    }  
    }
    return 0;
}
2011-12-06 01:28
天天涯涯
Rank: 4
等 级:业余侠客
帖 子:215
专家分:267
注 册:2011-10-17
收藏
得分:0 
上百度查查for连用的例子,你就会明白的。
2011-12-06 07:51
快速回复:请教老师大侠:c语言输出等腰三角形
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018007 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved