|  | 
 
| 
传送门:https://fishc.com.cn/forum.php?m ... peid%26typeid%3D570
x
马上注册,结交更多好友,享用更多功能^_^您需要 登录 才可以下载或查看,没有账号?立即注册  
 下面是我写的
 
 #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("%d", &ratio);
 printf("请输入按揭年数: ");
 scanf("%d", &time);
 printf("请输入当前基准年利率: ");
 scanf("%f", &yir);
 
 total_price = price * area;  //房款总额
 ratio *= 0.1;  //按揭成数用户输入的是 7,其实表示的应该是 70%,即 0.7;
 time *= 12;  //还款月数=还款年数 * 12
 loan = total_price * ratio;  //贷款本金 = 房款总额 * 按揭成数
 mir = yir / 100 / 12;  //计算月利率
 ave_repay = loan * (mir * pow((1 + mir), time)) / (pow((1 + mir), time) - 1);  //月均还款 = 贷款本金 * (月利率 * (1 + 月利率)^还款月数) / ((1 + 月利率)^还款月数 - 1)
 interest = time * ave_repay - loan;  //总利息 = 还款月数 * 月均还款 - 贷款本金
 down_payment = loan + interest - ave_repay * time + ave_repay;  //首期付款
 total_repay = loan + interest;
 
 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);  //月均还款,已计算
 }
 
 运算结果如下:
 
 
   
 我知道肯定有问题,高中这个东西我就没学明白,肯定算法有问题,但是我不想看小甲鱼老师的答案,想了一个晚上都没有想明白哪里有问题,算式应该是对的把
 
 请教大神
 
 本帖最后由 jhq999 于 2022-12-10 12:34 编辑 
 int ratio是整数类型没有小数,所以要懂得变通,7成是%70,直接变成70,后面用到就除以100,没用到改什么? | 
 |