应该是因为rate的数据类型不对,改为float类型或double即可,因为月利率变量rate那里输入了小数,所以需要改为浮点数数据类型,修改如下:
#include <stdio.h>
#include <math.h>
int main(void){
int loan,year,month;
float rate;
float money;
printf("请输入贷款本金:loan\n");
scanf("%d",&loan);
getchar();
printf("请输入月利率:rate\n");
scanf("%f",&rate);
printf("还款年限\t月还款额\n");
for(year=5;year<=30;year++){
month = year*12;
money= ( (float)loan * (float)rate * pow((1.0+(double)rate),(double)month) ) / (( pow(1.0+(double)rate,(double)month)-1) );
//money= (float) ( (float)loan * (float)rate * (float)pow((1.0+(double)rate),(double)month) ) / ((float)( pow(1.0+(double)rate,(double)month)-1) );
printf("%d\t%.0f\n",year,money);
}
return 0;
}
rate 应该为浮点数,但代码中定义的为long int 整形。