搜索
查看: 742|回复: 6
打印 上一主题 下一主题

提问一个关于while的问题,

[复制链接]
跳转到指定楼层
楼主
发表于 2015-12-16 15:01:56 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
图片是书上做一做留的作业,一下的代码是我自己下鼓弄出来的,但是我不明白原理是什么,谁能帮我讲一下吗?关于while这个知识点也有点发蒙!

#include <stdio.h>
#include <stdlib.h>
int main()
{
        int a,b;
    a=1;
    while(a<=5)
    {
                b=1;
        while(b<=a)
        {
                        printf("%d",a);
            b=b+1;
        }
        printf("\n");
        a=a+1;
    }
        system("pause");
        return 0;
}

1.png (4.4 KB, 下载次数: 10)

1.png
沙发
 楼主| 发表于 2015-12-16 15:03:18 | 只看该作者
还有一个是输出
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
这个有要怎么写那?
原谅我一个帖子问两个问题!
板凳
发表于 2015-12-17 12:34:46 | 只看该作者
第二个问题 里面再加上一个i变量 里面那个while写一个printf("%d算了直接上代码

[mw_shl_code=cpp,true]#include <stdio.h>
#include <stdlib.h>
int main()
{
         int a,b;
     a=1;
    int i=1;
     while(a<=5)
     {
                 b=1;
         while(b<=a)
         {
                         printf("%d",i);
               i++;
             b=b+1;
         }
         printf("\n");
         a=a+1;
     }
         system("pause");
         return 0;
}[/mw_shl_code]
原理就是while里面有个东西,当他成立后,就执行括号里面的然后再次判断成立不成立和上面一样,不成立直接跳过执行下面的
地板
 楼主| 发表于 2015-12-19 21:08:33 | 只看该作者
邀请码 发表于 2015-12-17 12:34
第二个问题 里面再加上一个i变量 里面那个while写一个printf("%d算了直接上代码

[mw_shl_code=cpp,true] ...

那c语言怎么编写啊?都是一样的吗?
5#
发表于 2015-12-29 17:08:19 | 只看该作者
我也是初学C,原来上大学学了一年都没懂++i什么鬼。。。现在自己要做项目需要学习各种计算机语言了,才开始努力。。。书到用时方恨少。。。不过我才接触C三天。我觉得啊哈C是本非常不错的书,很容易上手,但是很多详细知识不去钻研下,后期是很难理解的。所以看完啊哈C只是提高了学习的兴趣,接下来我在看谭浩强的C语言。。。我们大学时候的课本。。。不得不说,看完啊哈C在看这本书感觉好学多了。
我对于while的理解就是:如果你说的对,那么我们继续讨论下面问题。如果你说的不对,我们就没必要进行下去了,直接跳出while循环回家。。。   如果在while里面嵌套while那就是  如果你说的对,我们来讨论他说的话,如果他说的也对,那就继续听他说(不断循环),他说的不对就不听他的 继续听你说,这时候如果你说的也不对,那么我就回家了。。。  
不知道这么说你能不能理解。
刚开始看while我也很难理解,反复看,看很多遍就慢慢懂了。一起加油吧
6#
发表于 2015-12-29 17:21:56 | 只看该作者
我觉得把二楼的稍微改下可能更好理解
#include <stdio.h>
#include <stdlib.h>
int main()
{
         int a,b;
     a=1;                //使a从1开始往下循环
    int i=1;             //是i从1开始往下循环
     while(a<=5)         //a小于5的话继续执行以下循环,否则跳出
     {                   //while循环体的开始范围标记
         b=1;            //上一个while循环体成立的前提下,让b=1,且开始以下循环
         while(b<=a)     //当b<=a成立,就开始本循环体
         {
               printf("%2d ",i);  //输出i
               i++;               //开始让i自加1
               b++;               //开始让b自加1
         }                        //结束循环
         printf("\n");            //输出回车
         a++;                     //开始让a自加1
     }                            //结束循环
         system("pause");
         return 0;
}
7#
发表于 2015-12-29 17:27:20 | 只看该作者
如果用for就更简洁一些
#include <stdio.h>
#include <stdlib.h>
int main()
{
        int a,b,c;
    a=1;
    c=1;
    for(a=1;a<=5;a++)
                {
        for(b=1;b<=a;b++)
                        {printf("%2d ",c);
            c++;}
        printf("\n");
        }
        system("pause");
        return 0;
}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表