鱼C论坛

 找回密码
 立即注册
查看: 1026|回复: 6

[已解决]等额本息还款器求解中间的计算过程没错为什么运行结果不对嘞

[复制链接]
发表于 2022-1-6 14:43:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
中间计算过程求大佬解释
最佳答案
2022-1-6 18:53:06
大马强 发表于 2022-1-6 18:51
两个问题
一、ratio是个整型,装不了浮点数,所以声明要改
二、ave_repay放的位置不对,前边引用了都找不 ...

我看错了,顺序不对的不止一处,我又改了,你自己比对看看,要注意引用变量前要确保里面有东西,不然会出错
=================报告结果=================
房款总额:720000.00元
首期付款:216000.02元
贷款总额:50400.00元
还款总额:54192.00元
支付利息:3792.00元
月均还款:225.80元
#include<stdio.h>
#include<math.h>

int main()
{
        float price, area, yir, mir; //单价、面积、年利率、月利率
        float interest, loan;//利息,贷款总额 
        float ave_repay, down_payment;// 月均还款、首付 
        float total_price, total_repay, ratio;;//房款总额,还款总额 按揭成数,
//        int ratio, time; //按揭成数,按揭年数
                int time; //按揭年数
        
//        printf("请输入单价(元/平方):");
//        scanf("%f",&price); 
//        printf("请输入面积:");
//        scanf("%f",&area); 
//        printf("请输入按揭成数:");
//        scanf("%d",&ratio);  //%d 
//        printf("请输入按揭年数:");
//        scanf("%f",&time); 
//        printf("请输入当前基准年利率:");
//        scanf("%f",&yir); 
                price = 6000;
                area = 120;
                ratio = 7;
                time = 20;
                yir = 5.4;
                
        
        mir = yir / 12 / 100;
//        ratio = (float)ratio / 10;  
                ratio = ratio / 10; 
        total_price = price * area;
        down_payment = total_price * (1.0         - ratio);  
        loan = total_price * ratio / 10;
        ave_repay = loan *mir * pow((1 + mir), time*12) / pow((1+mir),12*time) - 1;
        interest = time * 12 * ave_repay - loan;
        total_repay = loan + interest;
        
//        printf("%d,%f,%f\n",time, ave_repay, loan);
//        ave_repay = loan *mir * pow((1 + mir), time*12) / pow((1+mir),12*time) - 1; 上边都引用了,你顺序不对 
        
        printf("=================报告结果=================\n");
        printf("房款总额:%.2f元\n",total_price);
        printf("首期付款:%.2f元\n",down_payment);
        printf("贷款总额:%.2f元\n",loan);
        printf("还款总额:%.2f元\n",total_repay);
        printf("支付利息:%.2f元\n",interest);
        printf("月均还款:%.2f元\n",ave_repay);
        
        return 0;
}

主体代码

主体代码

运行结果

运行结果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-1-6 16:05:17 | 显示全部楼层
发下代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-1-6 17:39:34 | 显示全部楼层
#include<stdio.h>
#include<math.h>

int main()
{
        float price, area, yir, mir; //单价、面积、年利率、月利率
        float interest, loan;//利息,贷款总额 
        float ave_repay, down_payment;// 月均还款、首付 
        float total_price, total_repay;//房款总额,还款总额 
        int ratio, time; //按揭成数,按揭年数
        
        printf("请输入单价(元/平方):");
        scanf("%f",&price); 
        printf("请输入面积:");
        scanf("%f",&area); 
        printf("请输入按揭成数:");
        scanf("%f",&ratio); 
        printf("请输入按揭年数:");
        scanf("%f",&time); 
        printf("请输入当前基准年利率:");
        scanf("%f",&yir); 
        
        mir = yir / 12 / 100;
        ratio = (float)ratio / 10;
        total_price = price * area;
        down_payment = total_price * (1 - (float)ratio);
        loan = total_price * ratio / 10;
        total_repay = loan + interest;
        interest = time * 12 * ave_repay - loan;
        ave_repay = loan *mir * pow((1 + mir), time*12) / pow((1+mir),12*time) - 1;
        
        printf("=================报告结果=================\n");
        printf("房款总额:%.2f元\n",total_price);
        printf("首期付款:%.2f元\n",down_payment);
        printf("贷款总额:%.2f元\n",loan);
        printf("还款总额:%.2f元\n",total_repay);
        printf("支付利息:%.2f元\n",interest);
        printf("月均还款:%.2f元\n",ave_repay);
        
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-1-6 18:51:04 | 显示全部楼层
两个问题
一、ratio是个整型,装不了浮点数,所以声明要改
二、ave_repay放的位置不对,前边引用了都找不到值
#include<stdio.h>
#include<math.h>

int main()
{
        float price, area, yir, mir; //单价、面积、年利率、月利率
        float interest, loan;//利息,贷款总额 
        float ave_repay, down_payment;// 月均还款、首付 
        float total_price, total_repay, ratio;;//房款总额,还款总额 按揭成数,
//        int ratio, time; //按揭成数,按揭年数
                int time; //按揭年数
        
//        printf("请输入单价(元/平方):");
//        scanf("%f",&price); 
//        printf("请输入面积:");
//        scanf("%f",&area); 
//        printf("请输入按揭成数:");
//        scanf("%d",&ratio);  //%d 
//        printf("请输入按揭年数:");
//        scanf("%f",&time); 
//        printf("请输入当前基准年利率:");
//        scanf("%f",&yir); 
                price = 6000;
                area = 120;
                ratio = 7;
                time = 20;
                yir = 5.4;
                
        
        mir = yir / 12 / 100;
//        ratio = (float)ratio / 10;  
                ratio = ratio / 10; 
        printf("%f,%f\n",mir,ratio);
        total_price = price * area;
        down_payment = total_price * (1.0         - ratio);  
        loan = total_price * ratio / 10;
        total_repay = loan + interest;
        ave_repay = loan *mir * pow((1 + mir), time*12) / pow((1+mir),12*time) - 1;
        printf("%d,%f,%f\n",time, ave_repay, loan);
        interest = time * 12 * ave_repay - loan;
//        ave_repay = loan *mir * pow((1 + mir), time*12) / pow((1+mir),12*time) - 1; 上边都引用了,你顺序不对 
        
        printf("=================报告结果=================\n");
        printf("房款总额:%.2f元\n",total_price);
        printf("首期付款:%.2f元\n",down_payment);
        printf("贷款总额:%.2f元\n",loan);
        printf("还款总额:%.2f元\n",total_repay);
        printf("支付利息:%.2f元\n",interest);
        printf("月均还款:%.2f元\n",ave_repay);
        
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-1-6 18:53:06 | 显示全部楼层    本楼为最佳答案   
大马强 发表于 2022-1-6 18:51
两个问题
一、ratio是个整型,装不了浮点数,所以声明要改
二、ave_repay放的位置不对,前边引用了都找不 ...

我看错了,顺序不对的不止一处,我又改了,你自己比对看看,要注意引用变量前要确保里面有东西,不然会出错
=================报告结果=================
房款总额:720000.00元
首期付款:216000.02元
贷款总额:50400.00元
还款总额:54192.00元
支付利息:3792.00元
月均还款:225.80元
#include<stdio.h>
#include<math.h>

int main()
{
        float price, area, yir, mir; //单价、面积、年利率、月利率
        float interest, loan;//利息,贷款总额 
        float ave_repay, down_payment;// 月均还款、首付 
        float total_price, total_repay, ratio;;//房款总额,还款总额 按揭成数,
//        int ratio, time; //按揭成数,按揭年数
                int time; //按揭年数
        
//        printf("请输入单价(元/平方):");
//        scanf("%f",&price); 
//        printf("请输入面积:");
//        scanf("%f",&area); 
//        printf("请输入按揭成数:");
//        scanf("%d",&ratio);  //%d 
//        printf("请输入按揭年数:");
//        scanf("%f",&time); 
//        printf("请输入当前基准年利率:");
//        scanf("%f",&yir); 
                price = 6000;
                area = 120;
                ratio = 7;
                time = 20;
                yir = 5.4;
                
        
        mir = yir / 12 / 100;
//        ratio = (float)ratio / 10;  
                ratio = ratio / 10; 
        total_price = price * area;
        down_payment = total_price * (1.0         - ratio);  
        loan = total_price * ratio / 10;
        ave_repay = loan *mir * pow((1 + mir), time*12) / pow((1+mir),12*time) - 1;
        interest = time * 12 * ave_repay - loan;
        total_repay = loan + interest;
        
//        printf("%d,%f,%f\n",time, ave_repay, loan);
//        ave_repay = loan *mir * pow((1 + mir), time*12) / pow((1+mir),12*time) - 1; 上边都引用了,你顺序不对 
        
        printf("=================报告结果=================\n");
        printf("房款总额:%.2f元\n",total_price);
        printf("首期付款:%.2f元\n",down_payment);
        printf("贷款总额:%.2f元\n",loan);
        printf("还款总额:%.2f元\n",total_repay);
        printf("支付利息:%.2f元\n",interest);
        printf("月均还款:%.2f元\n",ave_repay);
        
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2022-1-7 23:28:24 | 显示全部楼层
大马强 发表于 2022-1-6 18:53
我看错了,顺序不对的不止一处,我又改了,你自己比对看看,要注意引用变量前要确保里面有东西,不然会出 ...

调试过后给回复呀,谢谢大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-1-8 12:54:16 | 显示全部楼层
来学习代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-18 18:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表