A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 蜡笔小炎 中级黑马   /  2015-5-23 18:06  /  2936 人查看  /  30 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

#include <stdio.h>   
main( )
{
    int  x, y;
    for(x=30, y=0; x>=10, y<10; x--, y++)
        x/=2, y+=2;
    printf("x=%d,y=%d\n",x,y);
}


如上题,这个语句流程是怎么走的?
x=0,y=12的结果是怎么得来的?

30 个回复

倒序浏览
没有啥复杂的流程
就是x 除以二,再减一,y  +2,之后在加一。
知道满足条件为止
回复 使用道具 举报
视频里有的亲 细心看看啊
回复 使用道具 举报
X的初值为30  y的初值为0    满足x大于等于10  y满足小于10 所以继续往下走  x除以2为15  y加2为2  输出    然后  x=15-1=14   y=2+1=3   继续循环直到条件不满足   
回复 使用道具 举报
kakade 发表于 2015-5-23 20:00
X的初值为30  y的初值为0    满足x大于等于10  y满足小于10 所以继续往下走  x除以2为15  y加2为2  输出    ...

等等  我把链接给你
回复 使用道具 举报
kakade 发表于 2015-5-23 20:00
X的初值为30  y的初值为0    满足x大于等于10  y满足小于10 所以继续往下走  x除以2为15  y加2为2  输出    ...

http://pan.baidu.com/s/1sjmeCDR
这个是下载地址
回复 使用道具 举报
kakade 中级黑马 2015-5-24 23:45:23
7#
kakade 发表于 2015-5-23 20:33
http://pan.baidu.com/s/1sjmeCDR
这个是下载地址

只有视频  没有课件   好像最后一个文件夹 有相关的一些资料
回复 使用道具 举报
kakade 中级黑马 2015-5-24 23:46:30
8#
kakade 发表于 2015-5-23 20:33
http://pan.baidu.com/s/1sjmeCDR
这个是下载地址

课件应该基础的应该没有吧  
回复 使用道具 举报
kakade 中级黑马 2015-5-25 01:51:26
9#
正在努力
回复 使用道具 举报
zhangshuai 发表于 2015-5-23 18:33
没有啥复杂的流程
就是x 除以二,再减一,y  +2,之后在加一。
知道满足条件为止 ...

怎么感觉结果是6 , 6呢
回复 使用道具 举报
你是我的小苹果 发表于 2015-5-25 08:33
怎么感觉结果是6 , 6呢

#include <stdio.h>   
main( )
{
    int  x, y;
    for(x=30, y=0; x>=10, y<10; x--, y++)
        x/=2, y+=2;
    printf("x=%d,y=%d\n",x,y);
}


i=4;

循环共调用了4次
回复 使用道具 举报
你是我的小苹果 发表于 2015-5-25 08:33
怎么感觉结果是6 , 6呢

for语句中间的x >=10,y <10,其实等同于 x >=10 || y <10。
我也算了半天才明白,中间应该是或的关系!
回复 使用道具 举报
逗号 就是或者的关系 只要满足一个就跳出了
回复 使用道具 举报
额,刚进了你就明白了
回复 使用道具 举报
piaoguollal
回复 使用道具 举报
围观!看看大家是这么解决问题的!
回复 使用道具 举报
fixer 中级黑马 2015-5-27 06:34:13
17#
打断点,学循环
回复 使用道具 举报
确实4次循环,x和y两个条件应该是或的关系,只要有一个成立就可以进入下次循环体,知道x和y都不满足为止,循环体结束,最后在执行次x--和y++,最后结果就是x为0,y为12
回复 使用道具 举报
你自己设个断点  可以一步一步看看
或者加一个 printf 看每一次循环值的变化
回复 使用道具 举报
吧式子写完整,了看   很容易看出来!
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马