2012-07-15 128 views
1

我使用下面的代碼來獲得輸出最多由用戶輸入的任何數字的5個十進制字符除以1後,我必須用(float)類型化它。浮點數在C

任何人都可以告訴我如何不使用類型轉換或使用float常量來完成此操作嗎?

int main() { 
    int n; 
    scanf("%d",&n); 
    printf("%.5 ", 1/(float)n); 
    return 0; 
} 
+0

......如何讓一個沒有浮動的浮動?無論如何,你爲什麼要這麼做? – quasiverse 2012-07-15 03:03:19

+0

你可以通過'1./n'或'1f/n'做隱式轉換來將float/double引入到計算中。除法運算符的任何一個操作數都必須爲float/double,以便結果爲float/double。對於'printf',你必須使用'%.5f'(float)或'%.5lf'(double)。 – nhahtdh 2012-07-15 03:05:22

+0

「輸出最多5個十進制字符」,您不會將其轉換爲十進制,而是浮動。 – fazo 2012-07-15 03:07:22

回答

1

以你的問題嚴格從字面上看,你可以這樣做:

int main() { 
    float n; 
    scanf("%f",&n); 
    printf("%.5f", 1/n); 
    return 0; 
} 

在這段代碼中,沒有浮動文字和沒有(float)演員。

0

從技術上講,這應該這樣做:

printf("%.5f ", 1/pow(n,1));