C语言实现贷款计算器

这篇具有很好参考价值的文章主要介绍了C语言实现贷款计算器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

等额本金,等额本息数学推导:贷款 买房,利息怎么算?不要被忽悠了!李永乐老师讲等额本金和等额本息

一个心血来潮的研究,避免以后买房被坑。

捣鼓了半天才发现原来支付宝的那个利率是年利率不是月利率,坑了我半天。。。

代码

#include <stdio.h>
#include <math.h>
/**
 * @description: 等额本金
 * @param {double} totalPrincipal 贷款总额
 * @param {int} years  按揭年数
 * @param {double} annualInterestRate 年利率
 * @return {*}
 */
double EqualPrincipalPayment(double totalPrincipal, int years, double annualInterestRate)
{   
    annualInterestRate = annualInterestRate / 100.0;
    int period = years * 12;
    double monthlyInterestRate = annualInterestRate / 12.0;
    double monthlyInterestPayment = totalPrincipal * annualInterestRate;
    double monthlyPrincicalPayment = totalPrincipal / period;
    double remainingPrincical = totalPrincipal;

    printf("贷款方式:等额本金\n");
    printf("贷款总额: %.02f\n", totalPrincipal);
    printf("年利率: %.02f%%\n", annualInterestRate * 100);
    printf("贷款期限: %d 年\n", years);
    
    int count = 1;
    do
    {
        monthlyInterestPayment = remainingPrincical * monthlyInterestRate;
        remainingPrincical -= monthlyPrincicalPayment;
        double monthlyPayment = monthlyPrincicalPayment + monthlyInterestPayment;
        printf("期数: %6d | 剩余本金: %10.02f | 月供: %10.02f | 月供本金: %10.02f | 月供利息: %10.02f\n", count, remainingPrincical, monthlyPayment, monthlyPrincicalPayment, monthlyInterestPayment);
        count++;
    } while (count <= period);
}

// 等额本息
/**
 * @description:
 * @param {double} principal 贷款总额
 * @param {int}  years 按揭年数
 * @param {double} annualInterestRate 年利率
 * @return {*}
 */
void EqualMonthlyPayment(double totalPrincipal, int years, double annualInterestRate) {
    annualInterestRate = annualInterestRate / 100.0;
    int period = years * 12;
    double monthlyInterestRate = annualInterestRate / 12.0;
    //月付推导过程可见:https://www.jianshu.com/p/168ffe04ac20
    double monthlyPayment = totalPrincipal * (monthlyInterestRate * pow(1 + monthlyInterestRate, period)) / (pow(1 + monthlyInterestRate, period) - 1);
    
    printf("贷款方式:等额本息\n");
    printf("贷款总额: %.02f\n", totalPrincipal);
    printf("年利率: %.02f%%\n", annualInterestRate * 100);
    printf("贷款期限: %d 年\n", years);
    printf("每月还款金额: %.02f\n", monthlyPayment);
    
    double remainingPrincipal = totalPrincipal;
    int count = 1;
    do {
        double interestPayment = remainingPrincipal * monthlyInterestRate;
        double principalPayment = monthlyPayment - interestPayment;
        remainingPrincipal -= principalPayment;
        
        printf("期数: %6d | 剩余本金: %10.02f | 月供: %10.02f | 月供本金: %10.02f | 月供利息: %10.02f\n", count, remainingPrincipal, monthlyPayment, principalPayment, interestPayment);
        
        count++;
    } while (count <= period);
}

int main()
{
    EqualPrincipalPayment(100000, 10, 5.0);
    EqualMonthlyPayment(100000, 10, 5.0);
}

测试

程序输出:

贷款方式:等额本金
贷款总额: 100000.00
年利率: 5.00%
贷款期限: 1 年
期数:      1 | 剩余本金:   91666.67 | 月供:    8750.00 | 月供本金:    8333.33 | 月供利息:     416.67
期数:      2 | 剩余本金:   83333.33 | 月供:    8715.28 | 月供本金:    8333.33 | 月供利息:     381.94
期数:      3 | 剩余本金:   75000.00 | 月供:    8680.56 | 月供本金:    8333.33 | 月供利息:     347.22
期数:      4 | 剩余本金:   66666.67 | 月供:    8645.83 | 月供本金:    8333.33 | 月供利息:     312.50
期数:      5 | 剩余本金:   58333.33 | 月供:    8611.11 | 月供本金:    8333.33 | 月供利息:     277.78
期数:      6 | 剩余本金:   50000.00 | 月供:    8576.39 | 月供本金:    8333.33 | 月供利息:     243.06
期数:      7 | 剩余本金:   41666.67 | 月供:    8541.67 | 月供本金:    8333.33 | 月供利息:     208.33
期数:      8 | 剩余本金:   33333.33 | 月供:    8506.94 | 月供本金:    8333.33 | 月供利息:     173.61
期数:      9 | 剩余本金:   25000.00 | 月供:    8472.22 | 月供本金:    8333.33 | 月供利息:     138.89
期数:     10 | 剩余本金:   16666.67 | 月供:    8437.50 | 月供本金:    8333.33 | 月供利息:     104.17
期数:     11 | 剩余本金:    8333.33 | 月供:    8402.78 | 月供本金:    8333.33 | 月供利息:      69.44
期数:     12 | 剩余本金:       0.00 | 月供:    8368.06 | 月供本金:    8333.33 | 月供利息:      34.72
贷款方式:等额本息
贷款总额: 100000.00
年利率: 5.00%
贷款期限: 1 年
每月还款金额: 8560.75
期数:      1 | 剩余本金:   91855.92 | 月供:    8560.75 | 月供本金:    8144.08 | 月供利息:     416.67
期数:      2 | 剩余本金:   83677.90 | 月供:    8560.75 | 月供本金:    8178.02 | 月供利息:     382.73
期数:      3 | 剩余本金:   75465.81 | 月供:    8560.75 | 月供本金:    8212.09 | 月供利息:     348.66
期数:      4 | 剩余本金:   67219.51 | 月供:    8560.75 | 月供本金:    8246.31 | 月供利息:     314.44
期数:      5 | 剩余本金:   58938.84 | 月供:    8560.75 | 月供本金:    8280.67 | 月供利息:     280.08
期数:      6 | 剩余本金:   50623.67 | 月供:    8560.75 | 月供本金:    8315.17 | 月供利息:     245.58
期数:      7 | 剩余本金:   42273.85 | 月供:    8560.75 | 月供本金:    8349.82 | 月供利息:     210.93
期数:      8 | 剩余本金:   33889.25 | 月供:    8560.75 | 月供本金:    8384.61 | 月供利息:     176.14
期数:      9 | 剩余本金:   25469.70 | 月供:    8560.75 | 月供本金:    8419.54 | 月供利息:     141.21
期数:     10 | 剩余本金:   17015.08 | 月供:    8560.75 | 月供本金:    8454.62 | 月供利息:     106.12
期数:     11 | 剩余本金:    8525.23 | 月供:    8560.75 | 月供本金:    8489.85 | 月供利息:      70.90
期数:     12 | 剩余本金:      -0.00 | 月供:    8560.75 | 月供本金:    8525.23 | 月供利息:      35.52

等额本金:

C语言实现贷款计算器,c语言,java,算法

等额本息:

C语言实现贷款计算器,c语言,java,算法文章来源地址https://www.toymoban.com/news/detail-659334.html

到了这里,关于C语言实现贷款计算器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java 实现计算器

    *使用Java语言编写一个能实现“加、减、乘、除”四则运算的计算器程序。* 要求: (1)在程序中要体现面向对象编程语言的三大特征:封装、继承和多态。 (2)该程序要易于扩展和复用。以后可以方便地增加新的运算;程序的业务逻辑与界面部分要实现分离,便于业务逻

    2024年02月12日
    浏览(39)
  • Java课设-百行代码实现简易计算器

    Java程序设计 工程实践 ——简易计算器的设计 院、 系 计算机与软件学院 专业 信息安全 姓 名 指导教师 2022年 6 月 11 日 目录: 一、 设计简介 2 1、 设计背景 2 2、 开发工具及环境 2 (1)开发工具及介绍 2 (2)开发环境 2 二、 相关工作 2 1、设计基础 2 2、功能需求 2 3、系统

    2024年02月04日
    浏览(75)
  • JAVA课程设计——GUI实现简易计算器

    一.设计任务及要求 任务:设计并实现一个计算器小程序 要求: 使用图形用户界面 能在键盘或鼠标上读入数据,并完成加,减,乘,除计算。 在屏幕上显示一个主菜单。 提示用户输入相应的数字键,分别执行加,减,乘,除计算功能和结束程序的功能。 二.需求分析: ​ 计算

    2024年02月12日
    浏览(42)
  • Java实现简单计算器(GUI)页面(适合入门)

    使用Java Swing的GUI图形用户界面编程设计并编写一个简易计算器程序,用户通过鼠标或者键盘操作输入参加运算的数值和运算符,要求能进行简单的四则运算。

    2024年02月12日
    浏览(53)
  • 【Java】Java使用Swing实现一个模拟计算器(有源码)

       📝个人主页:哈__ 期待您的关注  今天翻了翻之前写的代码,发现自己之前还写了一个计算器,今天把我之前写的代码分享出来。  我记得那会儿刚学不会写,写的乱七八糟,但拿来当期末作业还是不错的哈哈。 直接上源码,后上讲解。 计算器上的按键不少,我们都定

    2024年04月11日
    浏览(64)
  • 【Java】——实现可视化加减乘除计算器

    🎃个人专栏: 🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客 🐳Java基础:Java基础_IT闫的博客-CSDN博客 🐋c语言:c语言_IT闫的博客-CSDN博客 🐟MySQL:数据结构_IT闫的博客-CSDN博客 🐠数据结构:​​​​​​数据结构_IT闫的博客-CSDN博客 💎C++:C++_IT闫的博客-CSDN博

    2024年02月05日
    浏览(42)
  • 【Java GUI】用java实现简单计算器的制作 项目(一)

    目录 正文       项目前提      项目思路      项目实现 一:实现图形化界面的设计    二:关于按钮监听及文本框展示的实现         三:表达式运算的实现 四:完整代码 作者的话          ~掌握java基本语法         ~熟悉基础数据结构的运用         ~了解Java Swin

    2024年02月05日
    浏览(52)
  • JAVA制作的简易计算器——傻瓜计算器

    用JAVA编写的傻瓜计算器 作用: 1.可以实现加法、减法、乘法、除法简单运算且是单一运算,不可混合使用。 2.CE为清除键 3.没有小数点O(∩_∩)O 思路: 创建JFrame窗口,设置标题,创建JButton,创建文本框JTextField用作显示。 先定义各种按钮类型,用作成员。定义窗口方法对窗口

    2024年02月11日
    浏览(44)
  • 用c语言编写计算器

    板书: 1、在编写控制台程序的时候一切流程都是有先后关系、并行的,而且所有函数都是由我们来调用的,比如下面的实例性代码: printf(\\\"确定请输入y,取消输入n\\\"); char c = getchar(); if(c==\\\'y\\\') { /// } else if(c==\\\'n\\\') { /// } 我们可以用getchar来等待用户输入一个值。但是到了Windows编程

    2024年02月06日
    浏览(38)
  • C语言 switch语句详细讲解 简单计算器及PTA例题季节判断,今天星期几-1(switch语句实现), 数据按需处理

    (1) 当被测试的变量等于 case 中的常量时,case 后跟的语句将被执行,直到遇到  break  语句为止。 (2)不是每一个 case 都需要包含  break 。如果 case 语句不包含  break ,控制流将会  继续  后续的 case,直到遇到 break 为止。 (3) 上面所有 case 都无法判断结果时,可用 default 代替

    2024年02月05日
    浏览(64)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包