这个C语言题目,几个地方不理解,说明下谢谢

来源:百度知道 编辑:UC知道 时间:2024/06/05 06:08:54
题目:猴子吃桃子问题,猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个.第二天早上又吃了剩下的桃子的一半,又多吃一个.以后每天早上都吃了前一天剩下的一半零一个.到第10天早上想吃时候,见只剩一个桃子了,求第一天工摘了几个桃子
别人给的答案
main()
{
int day, x1, x2;
day = 9; 这段地方不理解
x2 = 1; 这段地方不理解
while(day>0) 这段地方不理解
{
x1 = (x2 + 1) * 2; /* 第一天的桃子数是第2天桃子数加1后的2倍 */
x2 = x1; 这段地方不理解
day--; 这段地方不理解
}
printf("the total is %d\n", x1);
}

main()
{
int day, x1, x2;
day = 9; 天数~~
x2 = 1; 初始化X2 其实也就是那第10天还剩下那一个桃子(下面的(X2+1)*2是前一天的剩下的桃子数量,)
while(day>0) 条件循环句? 天数没有负数的吧??具体的为什么不弄个day<10我也搞不懂
{
x1 = (x2 + 1) * 2; /* 第一天的桃子数是第2天桃子数加1后的2倍 */
x2 = x1; 当X2(变量的嘛 我觉得)等于X1的时候,好象桃子就该是吃完了
day--;天数递减~~ 9 8 7 一直到1
}
printf("the total is %d\n", x1);
}
PS: 我也是刚学 汗 不大懂为什么会这样写,这样写了程序会编译成功么~~ 偶也不大懂~~ 只是把我理解的写上~~

main()
{
int day, x1, x2;
day = 9; //天数
x2 = 1; //第10天剩的桃子数
while(day>0) //算9次就是第1天的桃子数
{
x1 = (x2 + 1) * 2; // 前一天所剩的桃子数是今天桃子数加1后的2倍
//准备算再前一天的桃子数
x2 = x1; //下一步的今天桃子数
day--; //天数减1
}
printf("the total is %d\n", x1);
}

这实在是简单得无法注释了~~~

看看书好么,这是基础知识,没法再简单了....

9494

你没救了