GumpYu 发表于 2019-2-21 14:05:06

新手的每日一问

#include <stdio.h>
#include <math.h>

int main()
{
       
        float area,price_each_area;//面积,面积单价
        float interest,loan,total_pay_back,pay_loan,pay_every_month;//利息,贷款总额,还款总额 ,支付利息,月均还款
        int rate,year,month;//按揭成数,按揭年数 ,按揭月数
        float year_rate,month_rate;//年利率 月利率
        float total_price,first_price;//房款总额,首期付款
       
       
        printf("请输入单价(元/平方):");
        scanf("%f", &price_each_area);
        printf("请输入面积:%f");
        scanf("%f", &area);
        printf("请输入按揭成数:");
        scanf("%d", &rate);
        printf("请输入按揭年数:");
        scanf("%d", &year);
        printf("请输入当前基准年利率:");
        scanf("%f", &year_rate);
       
       
       
        //各种公式
        total_price = area*price_each_area;
        loan = total_price*rate/10;
        first_price = total_price - loan;
        total_pay_back = loan + loan*year*(year_rate/100);
        pay_loan = loan*year*(year_rate/100);
        month_rate = year_rate/100/12;
        month = year*12;
        pay_every_month = loan*(month_rate*pow(1+month_rate,month))/(pow(1+month,month)-1);
        interest = pay_every_month*month-loan;
       
       
       
               
       
       
       
       
       
       
       
       
       
        printf("==========报告结果==========\n");
        printf("房款总额:%f\n",total_price);
        printf("首期付款:%f\n",first_price);
        printf("贷款总额:%f\n",loan);
        printf("还款总额:%f\n",total_pay_back);
        printf("支付利息:%f\n",interest);
        printf("月均还款:%f\n",pay_every_month);
        return 0;
       
}


可能公式上面还有一些问题,但是最主要的问题就是在输入面积的时候回出现如图一所示的情况,虽然还是能够得到正确的结果(如图2),但是请问一下怎么解决这个问题

jackz007 发表于 2019-2-21 14:36:00

本帖最后由 jackz007 于 2019-2-21 14:37 编辑

第16行有问题,把引号里的 %f 抹掉:
      printf("请输入面积:") ;

910201513 发表于 2019-2-21 15:49:07

本帖最后由 910201513 于 2019-2-21 15:56 编辑

第十七行换成       
scanf("%lf", &price_each_area);/*把price_each_area换成double型*/

float的精度为8位有效数字;
double      16位

九位小数应该用double(双精度浮点型)

GumpYu 发表于 2019-2-21 20:45:14

jackz007 发表于 2019-2-21 14:36
第16行有问题,把引号里的 %f 抹掉:

好的谢谢
页: [1]
查看完整版本: 新手的每日一问