|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
公式顺序不同出的结果不一样啊
- total_repay=time*12.0*ave_repay;
- interest=total_repay-loan;
复制代码
这两句放到
- ave_repay=loan*(mir*pow((1.0+mir),time*12.0))/(pow((1.0+mir),time*12.0)-1.0);
复制代码
之前输出的还款总额、支付利息结果就错了。。。貌似是溢出了
求大佬解惑原因。。。写公式还有顺序得吗? 感觉没有互相占用变量的时候啊
- #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);
- mir=yir/100.0/12.0;/*月利率*/
- total_price=price*area;
- down_payment=total_price*(1.0-ratio/10.0);
- loan=total_price-down_payment;
- ave_repay=loan*(mir*pow((1.0+mir),time*12.0))/(pow((1.0+mir),time*12.0)-1.0);
- total_repay=time*12.0*ave_repay;
- interest=total_repay-loan;
- 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;
- }
复制代码
本帖最后由 转会但姿势丶 于 2020-2-26 11:57 编辑
这题我做过。
编译代码的时候要注意先后顺序。
比如你第一行的变量需要第二行变量的值,这样的话编译器会报错。
就像初中数学的证明题(不是反证法)一样,你如果要证明一个结论,你是不是要拼凑足够多的条件去证明它,好像越说越乱了,总之就是不要无中生有,没有的,你就要相反设法去创造它
还有,你第25行括号里面应该是:((10 - ratio) / 10),第26行不要那么写,虽然方便,但如果你第25行错了就跟着一起错
给你看一下我的代码:
- #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;
- loan = total_price * ratio / 10;
- down_payment = total_price * (10 - ratio) / 10;
- mir = yir / 12.0;
- ave_repay = loan * ((mir / 100.0) * pow(1.0 + (mir / 100.0), time * 12)) / (pow(1.0 + (mir / 100.0), time * 12) - 1.0);
- total_repay = (time * 12) * ave_repay;
- interest = total_repay - loan;
-
- 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;
- }
复制代码
我编译起来没什么问题
|
|