鱼C论坛

 找回密码
 立即注册
查看: 1395|回复: 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元
  1. #include<stdio.h>
  2. #include<math.h>

  3. int main()
  4. {
  5.         float price, area, yir, mir; //单价、面积、年利率、月利率
  6.         float interest, loan;//利息,贷款总额
  7.         float ave_repay, down_payment;// 月均还款、首付
  8.         float total_price, total_repay, ratio;;//房款总额,还款总额 按揭成数,
  9. //        int ratio, time; //按揭成数,按揭年数
  10.                 int time; //按揭年数
  11.         
  12. //        printf("请输入单价(元/平方):");
  13. //        scanf("%f",&price);
  14. //        printf("请输入面积:");
  15. //        scanf("%f",&area);
  16. //        printf("请输入按揭成数:");
  17. //        scanf("%d",&ratio);  //%d
  18. //        printf("请输入按揭年数:");
  19. //        scanf("%f",&time);
  20. //        printf("请输入当前基准年利率:");
  21. //        scanf("%f",&yir);
  22.                 price = 6000;
  23.                 area = 120;
  24.                 ratio = 7;
  25.                 time = 20;
  26.                 yir = 5.4;
  27.                
  28.         
  29.         mir = yir / 12 / 100;
  30. //        ratio = (float)ratio / 10;  
  31.                 ratio = ratio / 10;
  32.         total_price = price * area;
  33.         down_payment = total_price * (1.0         - ratio);  
  34.         loan = total_price * ratio / 10;
  35.         ave_repay = loan *mir * pow((1 + mir), time*12) / pow((1+mir),12*time) - 1;
  36.         interest = time * 12 * ave_repay - loan;
  37.         total_repay = loan + interest;
  38.         
  39. //        printf("%d,%f,%f\n",time, ave_repay, loan);
  40. //        ave_repay = loan *mir * pow((1 + mir), time*12) / pow((1+mir),12*time) - 1; 上边都引用了,你顺序不对
  41.         
  42.         printf("=================报告结果=================\n");
  43.         printf("房款总额:%.2f元\n",total_price);
  44.         printf("首期付款:%.2f元\n",down_payment);
  45.         printf("贷款总额:%.2f元\n",loan);
  46.         printf("还款总额:%.2f元\n",total_repay);
  47.         printf("支付利息:%.2f元\n",interest);
  48.         printf("月均还款:%.2f元\n",ave_repay);
  49.         
  50.         return 0;
  51. }
复制代码

主体代码

主体代码

运行结果

运行结果
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-1-6 16:05:17 | 显示全部楼层
发下代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

  3. int main()
  4. {
  5.         float price, area, yir, mir; //单价、面积、年利率、月利率
  6.         float interest, loan;//利息,贷款总额
  7.         float ave_repay, down_payment;// 月均还款、首付
  8.         float total_price, total_repay;//房款总额,还款总额
  9.         int ratio, time; //按揭成数,按揭年数
  10.        
  11.         printf("请输入单价(元/平方):");
  12.         scanf("%f",&price);
  13.         printf("请输入面积:");
  14.         scanf("%f",&area);
  15.         printf("请输入按揭成数:");
  16.         scanf("%f",&ratio);
  17.         printf("请输入按揭年数:");
  18.         scanf("%f",&time);
  19.         printf("请输入当前基准年利率:");
  20.         scanf("%f",&yir);
  21.        
  22.         mir = yir / 12 / 100;
  23.         ratio = (float)ratio / 10;
  24.         total_price = price * area;
  25.         down_payment = total_price * (1 - (float)ratio);
  26.         loan = total_price * ratio / 10;
  27.         total_repay = loan + interest;
  28.         interest = time * 12 * ave_repay - loan;
  29.         ave_repay = loan *mir * pow((1 + mir), time*12) / pow((1+mir),12*time) - 1;
  30.        
  31.         printf("=================报告结果=================\n");
  32.         printf("房款总额:%.2f元\n",total_price);
  33.         printf("首期付款:%.2f元\n",down_payment);
  34.         printf("贷款总额:%.2f元\n",loan);
  35.         printf("还款总额:%.2f元\n",total_repay);
  36.         printf("支付利息:%.2f元\n",interest);
  37.         printf("月均还款:%.2f元\n",ave_repay);
  38.        
  39.         return 0;
  40. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

  3. int main()
  4. {
  5.         float price, area, yir, mir; //单价、面积、年利率、月利率
  6.         float interest, loan;//利息,贷款总额
  7.         float ave_repay, down_payment;// 月均还款、首付
  8.         float total_price, total_repay, ratio;;//房款总额,还款总额 按揭成数,
  9. //        int ratio, time; //按揭成数,按揭年数
  10.                 int time; //按揭年数
  11.         
  12. //        printf("请输入单价(元/平方):");
  13. //        scanf("%f",&price);
  14. //        printf("请输入面积:");
  15. //        scanf("%f",&area);
  16. //        printf("请输入按揭成数:");
  17. //        scanf("%d",&ratio);  //%d
  18. //        printf("请输入按揭年数:");
  19. //        scanf("%f",&time);
  20. //        printf("请输入当前基准年利率:");
  21. //        scanf("%f",&yir);
  22.                 price = 6000;
  23.                 area = 120;
  24.                 ratio = 7;
  25.                 time = 20;
  26.                 yir = 5.4;
  27.                
  28.         
  29.         mir = yir / 12 / 100;
  30. //        ratio = (float)ratio / 10;  
  31.                 ratio = ratio / 10;
  32.         printf("%f,%f\n",mir,ratio);
  33.         total_price = price * area;
  34.         down_payment = total_price * (1.0         - ratio);  
  35.         loan = total_price * ratio / 10;
  36.         total_repay = loan + interest;
  37.         ave_repay = loan *mir * pow((1 + mir), time*12) / pow((1+mir),12*time) - 1;
  38.         printf("%d,%f,%f\n",time, ave_repay, loan);
  39.         interest = time * 12 * ave_repay - loan;
  40. //        ave_repay = loan *mir * pow((1 + mir), time*12) / pow((1+mir),12*time) - 1; 上边都引用了,你顺序不对
  41.         
  42.         printf("=================报告结果=================\n");
  43.         printf("房款总额:%.2f元\n",total_price);
  44.         printf("首期付款:%.2f元\n",down_payment);
  45.         printf("贷款总额:%.2f元\n",loan);
  46.         printf("还款总额:%.2f元\n",total_repay);
  47.         printf("支付利息:%.2f元\n",interest);
  48.         printf("月均还款:%.2f元\n",ave_repay);
  49.         
  50.         return 0;
  51. }
复制代码

小甲鱼最新课程 -> https://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元
  1. #include<stdio.h>
  2. #include<math.h>

  3. int main()
  4. {
  5.         float price, area, yir, mir; //单价、面积、年利率、月利率
  6.         float interest, loan;//利息,贷款总额
  7.         float ave_repay, down_payment;// 月均还款、首付
  8.         float total_price, total_repay, ratio;;//房款总额,还款总额 按揭成数,
  9. //        int ratio, time; //按揭成数,按揭年数
  10.                 int time; //按揭年数
  11.         
  12. //        printf("请输入单价(元/平方):");
  13. //        scanf("%f",&price);
  14. //        printf("请输入面积:");
  15. //        scanf("%f",&area);
  16. //        printf("请输入按揭成数:");
  17. //        scanf("%d",&ratio);  //%d
  18. //        printf("请输入按揭年数:");
  19. //        scanf("%f",&time);
  20. //        printf("请输入当前基准年利率:");
  21. //        scanf("%f",&yir);
  22.                 price = 6000;
  23.                 area = 120;
  24.                 ratio = 7;
  25.                 time = 20;
  26.                 yir = 5.4;
  27.                
  28.         
  29.         mir = yir / 12 / 100;
  30. //        ratio = (float)ratio / 10;  
  31.                 ratio = ratio / 10;
  32.         total_price = price * area;
  33.         down_payment = total_price * (1.0         - ratio);  
  34.         loan = total_price * ratio / 10;
  35.         ave_repay = loan *mir * pow((1 + mir), time*12) / pow((1+mir),12*time) - 1;
  36.         interest = time * 12 * ave_repay - loan;
  37.         total_repay = loan + interest;
  38.         
  39. //        printf("%d,%f,%f\n",time, ave_repay, loan);
  40. //        ave_repay = loan *mir * pow((1 + mir), time*12) / pow((1+mir),12*time) - 1; 上边都引用了,你顺序不对
  41.         
  42.         printf("=================报告结果=================\n");
  43.         printf("房款总额:%.2f元\n",total_price);
  44.         printf("首期付款:%.2f元\n",down_payment);
  45.         printf("贷款总额:%.2f元\n",loan);
  46.         printf("还款总额:%.2f元\n",total_repay);
  47.         printf("支付利息:%.2f元\n",interest);
  48.         printf("月均还款:%.2f元\n",ave_repay);
  49.         
  50.         return 0;
  51. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

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

调试过后给回复呀,谢谢大佬
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-1-8 12:54:16 | 显示全部楼层
来学习代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-3 23:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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