本关任务:假设银行一年整存零取的月息为x%。现在某人手中有一笔钱,他打算在今后的n年的每年年底取出y元,到第n年时刚好取完,请算出他在第一年年初时应存入多少。(注:每年所获利息第2年年初纳入本金起息) 编写一个程序计算存入的钱数。 编程要求 c语言代码
时间: 2024-02-11 15:07:38 浏览: 128
月息:流氓!
以下是 C 语言代码实现:
```c
#include <stdio.h>
#include <math.h>
int main()
{
double x, y, n, p, b, t;
printf("请输入月利率x,预计取出金额y,预计存款年限n:\n");
scanf("%lf%lf%lf", &x, &y, &n);
p = x / 100.0 / 12.0; // 计算每月利息
b = y * (pow(1 + p, n * 12) - 1) / p / pow(1 + p, n * 12); // 计算存款本金
printf("在第一年年初时应存入%.2lf元\n", b);
return 0;
}
```
代码解析:
1. 定义 double 类型变量 x、y、n、p、b 和 t,分别表示月利率、预计取出金额、预计存款年限、每月利息、存款本金和计算过程中的临时变量。
2. 使用 printf 函数提示用户输入月利率、预计取出金额和预计存款年限。使用 scanf 函数将用户输入的值分别赋给 x、y 和 n 变量。
3. 计算每月利息,将计算结果赋给变量 p。
4. 根据公式计算存款本金,将计算结果赋给变量 b。其中,pow 函数用于计算幂次方,pow(1 + p, n * 12) 表示本息复利计算后的总本金,pow(1 + p, n * 12) - 1 表示总本金减去本金,得到的是总利息,y * (pow(1 + p, n * 12) - 1) / p 表示总利息除以复利计算的系数,得到的是本金和总利息之和。
5. 使用 printf 函数将计算出的存款本金输出,即为在第一年年初时应存入的钱数。
6. 返回 0,表示程序执行完毕。
阅读全文