很抱歉,我只是在学c,也许很容易解决,但我不知道怎么解决
在代码中,我只有一个printf,但是在终端中,同样的问题显示了两次。但最终的结果是正确的。
#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;
}
最佳答案
您调用lfDemanaMensualitat()
函数两次,它只调用一次printf()
,所以您当然会有两个打印输出。
如果您只想调用一次并存储值,可以这样做:
const double t = lfDemanaMensualitat();
const double a = (1 + lfDemanaTaxa()) / t;
const double b = pow(a, t);
然后像你已经做的那样计算
c
和TAE
。这只是将lfDemanaMensualitat()
的结果保存在名为t
的临时变量中。顺便说一下,如果用户输入的内容与指定的转换不匹配,那么
scanf()
可能会失败。在依赖输入之前,必须检查返回值以确保成功。关于c - 为什么要问同样的问题,但是在代码中只有1个printf()?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46663874/