编程实现:
张先生有20,000元,想存5年,可以有5种存款方法:
⑴存活期存款。活期利息每季度结算一次。
⑵存1年期,到期后本息合计再存1年期,连续存5次。
⑶先存2年期,到期后本息合计再存3年期。
⑷先存3年期,到期后本息合计再存2年期。
⑸一次存5年期。
2021年1月银行存款利息如下:
1年定期存款年利率为:1.75%
2年定期存款年利率为:2.25%
3年定期存款年利率为:2.75%
5年定期存款年利率为:2.75%
活期存款年利率为: 0.30%
如果m为存款金额,r为年利率,n为存款年数,则计算本息和的公式为:
1年期本息和: p=m*(1+r)
存n次1年期的本息和: p=m*(1+r)ⁿ
n年期本息和: p=m*(1+n*r)
活期存款本息和: p=m*(1+r/4)⁴ⁿ
⑴计算5种存款方法到期后的本息和,各是多少?
⑵哪种方法存款方法得到的利息最多?
⑶对5种存款方法得到的利息按照从少到多输出。
#include <stdio.h>
#include <math.h>
//冒泡排序函数的定义及实现
void Bubble(float* nums, int size)
{
int i = 0, n = 0;
for (i = 0; i < size - 1; i++)//走几趟冒泡排序,size个数就要进行size-1趟冒泡排序
{
//第一趟冒泡排序要进行size-1次排序,第二趟进行size-2次......故终止条件为size-1-i
for (n = 0; n < size - 1 - i; n++)
{
if (nums[n] > nums[n+1])
{
float temp = nums[n];
nums[n] = nums[n + 1];
nums[n + 1] = temp;
}
}
}
}
int main()
{
float p1 = 20000 * pow(1 + 0.003 / 4, 4 * 5); //p = m * (1 + r / 4)^4n
float p2 = 20000 * pow(1 + 0.0175, 5); // p = m * (1 + r)^n
float p3 = (20000 * (1 + 2 * 0.0225)) * (1 + 3 * 0.0275); //p = m * (1 + n * r)
float p4 = (20000 * (1 + 3 * 0.0275)) * (1 + 2 * 0.0225); //p = m * (1 + n * r)
float p5 = 20000 * (1 + 5 * 0.0275); //p = m * (1 + n * r)
printf("(1)5种存款方法到期后的本息和分别为:\n%0.3f %0.3f %0.3f %0.3f %0.3f\n", p1, p2, p3, p4, p5);
float a1 = p1 - 20000;
float a2 = p2 - 20000;
float a3 = p3 - 20000;
float a4 = p4 - 20000;
float a5 = p5 - 20000;
float arr1[] = { a1,a2,a3,a4,a5 };
float max = 0;
int i = 0;
for (i = 0; i < 5; i++)
{
if (arr1[i] >= max)
max = arr1[i];
}
printf("\n(2)第%d种方法存款方法得到的利息最多,利息为:%0.3f\n",i, max);
//引用冒泡排序函数
Bubble(arr1, 5);
printf("\n(3)5种存款方法得到的利息按照从少到多输出为:\n");
for (i = 0; i < 5; i++)
{
printf("%0.3f ", arr1[i]);
}
printf("\n");
return 0;
}