回 帖 发 新 帖 刷新版面

主题:C/C++每日一练2011/4/14

今天的题目考大家对while循环的掌握情况。老规矩,不看回复,不运行,只准思考。

正确答案以及分析回复可见。。C/C++每日一练2011/4/12


本帖隐藏的内容
正确答案是B:45

答错的人不少,一起来分析下.

i初始值为0

While(i++ < 7)首先判断i是否小于7,然后i加1;

i为0显然小于7,然后i加1变成1进入while循环。

If (p %2) 这语句的意思是如果p%2不等于0,也就是为真,if条件才成立。等于0则不循环,换句话说,也就是当p的值是偶数时,if条件不成立,奇数时成立。

现在i的值为1,p[1]等于12. If条件不成立,不执行j+=p;

第二次while循环,i为1<7成立,i加1为2,进入循环,判断p[2]等于13,所以if条件成立,把这个值加到j上。

因此j=p[2]+p[4]+p[6]等于45;




int main() 



    int p[8]={11, 12, 13, 14, 15, 16, 17, 18};

    int i = 0, j = 0; 

    while (i++ < 7) 

    {

        if (p[i] % 2) 

        {

            j += p[i]; 

        }

    }

    printf("%d\n", j); 

    //C++ cout << j << endl;

    return 0;

}
复制代码



本文摘自: 编程十万个为什么(http://www.bcwhy.com) 详细出处请参考:http://www.bcwhy.com/thread-1788-1-1.html

回复列表 (共1个回复)

沙发

.......

我来回复

您尚未登录,请登录后再回复。点此登录或注册