| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1503 人关注过本帖
标题:两段相同打印正三角形代码,为啥结果不同啊?请帮忙看下哪里有问题呢?
只看楼主 加入收藏
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
两段相同打印正三角形代码,为啥结果不同啊?请帮忙看下哪里有问题呢?
#include <stdio.h>
int main()
{
    int i,j,k;
    for(i=1; i<5; i++)
    {
       for(j=1;j<5;j++)  
        {
            printf(" ");   
        }
       for(k=0;k<2*i-1;k++)
        {
            printf("*");   
        }
        printf("\n");     
    }
  /*
    int i,j,k;
    for(i=1; i<5; i++)
    {
        for(j=i;j<5;j++)
        {
            printf(" ");
        }
        for(k=0;k<2*i-1;k++)
        {
            printf("*");
        }
        printf("\n");
    }*/
    return 0;
}
运行结果如下:第一段*是左对齐的
*
***
*****
*******
第二段代码是居中对齐的
     *
    ***
   *****
  *******
搜索更多相关主题的帖子: 正三角形 include 
2016-03-08 10:28
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:0 
补充:如果我把第二段的i,j,k变量名改为l,m,n的话,结果也会变成和第一段代码运行结果一样了,输出左对齐的星星。很奇怪的,看半天也没看出哪里不同啊。是我钻牛角尖里出不来了么。。

可以用注释屏蔽掉其中一段程序,分别运行两段代码,麻烦哪位前辈帮忙看下,我迷在里面找不到路,我自己读程序的话认为应该是左对齐的
就是这个结果:
*
***
*****
*******
为啥还会输入居中对齐的结果呢?

[此贴子已经被作者于2016-3-8 10:37编辑过]

2016-03-08 10:30
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:10 
for(j=i;j<5;j++)  //区别在此,第一段(j=1)每行开始都打印四个空格,第二段(j=i)行开始打印的空格依行数减小。
{
     printf(" ");
}

   唯实惟新 至诚致志
2016-03-08 10:37
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:0 
回复 3楼 qq1023569223
嗯,这个结果看出来了,但是原因是什么造成第二段空格会依次减少呢,代码都一样的啊?而且我如果把第二段程序里面的i,j,k对应换成l,m,n的话两段结果就全是左对齐的了

[此贴子已经被作者于2016-3-8 10:39编辑过]

2016-03-08 10:38
grmmylbs
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:54
帖 子:1409
专家分:5845
注 册:2016-2-14
收藏
得分:10 
第二个for循环不一样
for(j=1;j<5;j++)
for(j=i;j<5;j++)
第一段固定在每段*前输出4个空格,第二段代码是输出5-i个空格
所以结果就是那样了。
第二段你改成l,m,n,i的值不变,就和第一段类似了。
2016-03-08 10:40
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:0 
回复 4楼 wanglianyi1
哪里一样了,for里面j=1和j=i一样?

   唯实惟新 至诚致志
2016-03-08 10:44
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:0 
感谢各位,看出来哪里不一样了!!第一段是j=1;第二段是j=i
是我看来看去晕了,谢谢各位啊
2016-03-08 10:45
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:0 
回复 6楼 qq1023569223
嗯,是我没看出来,,,我把1和i都看成1了。。谢谢了
2016-03-08 10:46
快速回复:两段相同打印正三角形代码,为啥结果不同啊?请帮忙看下哪里有问题呢? ...
数据加载中...
 
   



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

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