我很抱歉,但我只是学习c,可能很容易修复,但我不知道如何
在代码中我只有1个printf,但在终端中显示相同的问题2次。但最后结果是正确的。
#include <stdio.h>
#include <math.h>
double lfDemanaTaxa(){
double i;
double d;
printf("Quant es la taxa interes nominal?\n");
scanf("%lf",&i);
d = i/100;
return d;
}
double lfDemanaMensualitat(){
double n;
scanf("%lf",&n);
return n;
}
int main(){
double a,b,c,TAE;
a = (1+lfDemanaTaxa()/lfDemanaMensualitat());
b = pow(a,lfDemanaMensualitat());
c = b -1;
TAE = c * 100;
printf("El TAE total es %.2lf%% \n", TAE);
return 0;
}
答案 0 :(得分:7)
您拨打lfDemanaMensualitat()
两次功能,并拨打printf()
,这样您当然会打印两次。
如果您只想调用一次并存储值,您可以这样:
const double t = lfDemanaMensualitat();
const double a = (1 + lfDemanaTaxa()) / t;
const double b = pow(a, t);
然后像你已经做的那样计算c
和TAE
。这只会将lfDemanaMensualitat()
的结果保存在名为t
的临时变量中。
顺便说一下,如果用户输入的内容与指定的转换不匹配,您应该知道scanf()
可能会失败。在依赖输入之前,必须检查返回值以确保它成功。