2017-10-10 58 views
0

對不起,但我只是學習C,可能它很容易修復,但我不知道如何爲什麼它要求相同,但在代碼中只有1個printf()?

在代碼我只有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; 
} 

here you can see it questions the same and i put the same number

+4

順便說一下你的輸出與你的程序不匹配。 –

+0

當您修復輸出以匹配您的程序時,請記住:**永遠不要**將純文本輸出顯示爲圖形。文字不是藝術品。 – Gerhardh

回答

7

您調用lfDemanaMensualitat()功能的兩倍,並且它一個呼叫printf(),所以當然你將有兩個打印輸出。

如果你想一次把它與存儲的價值,你可以像這樣:

const double t = lfDemanaMensualitat(); 
const double a = (1 + lfDemanaTaxa())/t; 
const double b = pow(a, t); 

,然後計算cTAE像你已經做的。這只是將lfDemanaMensualitat()的結果保存在名爲t的臨時變量中。

順便說一句,你應該知道scanf()可能會失敗,如果用戶輸入的東西不符合指定的轉換。在依賴輸入之前,您必須檢查返回值以確保其成功。

+0

非常感謝你我開始學習c –

相關問題