搜索
查看: 737|回复: 3
打印 上一主题 下一主题

大神求助啊

[复制链接]
跳转到指定楼层
楼主
发表于 2015-8-5 10:48:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
#include <stdio.h>
#include <stdlib.h>
int main()
{
        int a,b,c;
    a=1;
    c=0;
    while(a<=5)
    {
                b=1;
        while(b<=a)
        {
        printf("%d",b+c);//第一次的b=1 c=0
        b=b+1;
        }
        printf("\n");
        c=c+a;
        a=a+1;
    }
        system("pause");
        return 0;
}
这个代码运行出来是
1
23
456
78910
1112131415
跟书上结果一样的      
就是搞不懂这个是怎么循环的while的执行顺序   还有每一次执行时的a,b,c的值
求大神解答{:soso_e149:}

最佳答案

查看完整内容

开始a=1,c=0, 判断第一个循环 a
沙发
发表于 2015-8-5 10:48:09 | 只看该作者
开始a=1,c=0,
判断第一个循环
a<=5,1<=5,判断成立,进入第一个循环{
b=1
b<=a,1<=1,判断成立,进入第二个循环{
b+c=1,1+0=1,输出1
执行b+1,1+1=2
}
返回判断第二个循环
b<=a,2<=1,判断不成立,退出第二个循环
}
输出回车
c=c+a,1=0+1
a=a+1,2=1+1
}
返回判断第一个循环

a=2,c=1
a<=5,2<=5,判断成立,进入第一个循环{
b=1
b<=a,1<=2,判断成立,进入第二个循环{
b+c=1,1+1=2,输出2
执行b+1,1+1=2
}
返回判断第二个循环
b=2
b<=a,2<=2,判断成立,继续第二个循环{
b+c=1,2+1=3,输出3
执行b+1,2+1=3

返回判断第二个循环
b=3
b<=a,3<=2,判断不成立,退出第二个循环{
}
输出回车
c=c+a,3=1+2
a=a+1,3=2+1
}
返回判断第一个循环

这样一直循环到a<=5不成立,就是和上面说的一样 a控制行 b控制列,a0行b循环了一次,a1行b循环了两次。。

点评

感谢 已懂  发表于 2015-8-7 09:32
板凳
发表于 2015-8-5 14:10:30 | 只看该作者
我的理解是 a是行 b是列
其实我觉得可以行加列减一,就用不上c了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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