老话题:猴子吃桃子的题目 采用不同的循环函数为何结果不同
题目:猴子吃桃子问题。猴子第一天摘下若干个桃,当即只一半,又多吃一个。第二天早上又将剩下的一半吃掉一半,双多吃一个。以后每天早上都吃了前天剩下的一半零一个,到第10天早上只剩下最后一个桃。问第一天摘了几个桃。我一开始用 for循环写的代码如下:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
void main()
{
int i = 1; //定义循环天数
int y = 1; //定义剩余桃子
int y1; //定义前一天剩余的桃子 y= y1/2-1
printf("\n猴子吃桃子,每天吃一半加一个,十天后仅剩一个了。问桃子总共多少?");
for (i = 1; i <= 10; i++)
{
y1 = 2 * (y + 1);
y = y1;
}
printf("\n桃子的总数量是 %d", y);
system("pause");
}
得到的结果是 3070
但是我后来又改为用while循环来写,却压根不显示结果
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
void main()
{
int i = 1; //定义循环天数
int y = 1; //定义剩余桃子
int y1; //定义前一天剩余的桃子 y= y1/2-1
printf("\n猴子吃桃子,每天吃一半加一个,十天后仅剩一个了。问桃子总共多少?");
while (i <= 10);
{
y1 = 2 * (y + 1);
y = y1;
i++;
}
printf("\n桃子的总数量是 %d", y);
system("pause");
}
实在不得其解,还请各位帮忙看下到此错在哪里? 为何用while来写就没有结果输出呢
多谢!