while循环 示例2

19 阅读1分钟
  1. 一物体从高度100米的下落,每次下落高度减半,多少次后高度小于0.5米
`int main() {
    double h = 100;
    int i = 0;
    while (h > 0.5) { // 修正循环条件,当高度大于0.5时继续循环
        h = h / 2;
        i++;
        printf("第%d次落下的高度是:%f\n", i, h);
    }
    printf("%d", i);
    return 0;
}

运行结果逻辑

这段代码用于计算一个物体从 100 的高度开始,每次落下高度减半,直到高度小于 0.5 时的次数及每次的高度。修正后,循环会在h > 0.5时执行,正确计算出每次落下的高度和次数。

image.png


2.一元钱存入银行,每年利息%10,10年后一共多少钱

int main() {
    double money = 1;
    int i = 0;
    while (i < 10) {
        money = money * (1 + 0.1);
        i++;
        printf("第%d年之后是:%f 元\n", i, money);
    }
    return 0;
}

代码功能说明

  • 初始资金money为 1,循环执行 10 次(i < 10)。
  • 每次循环中,资金按money = money * (1 + 0.1)(即每年增长 10%)计算,然后输出第i年之后的资金数额。

运行结果逻辑

程序会依次输出第 1 年到第 10 年之后的资金金额,展示复利的增长效果。例如第 1 年之后资金为1.1,第 2 年之后为1.21,以此类推,最终第 10 年之后资金约为2.5937(具体数值由浮点数精度决定)。

image.png