我使用下面的代碼來獲得輸出最多由用戶輸入的任何數字的5個十進制字符除以1後,我必須用(float)
類型化它。浮點數在C
任何人都可以告訴我如何不使用類型轉換或使用float常量來完成此操作嗎?
int main() {
int n;
scanf("%d",&n);
printf("%.5 ", 1/(float)n);
return 0;
}
我使用下面的代碼來獲得輸出最多由用戶輸入的任何數字的5個十進制字符除以1後,我必須用(float)
類型化它。浮點數在C
任何人都可以告訴我如何不使用類型轉換或使用float常量來完成此操作嗎?
int main() {
int n;
scanf("%d",&n);
printf("%.5 ", 1/(float)n);
return 0;
}
您可以use this piece of code僅使用整數:
printf(n==1?"1.00000":"0.%05d ", 100000/n);
以你的問題嚴格從字面上看,你可以這樣做:
int main() {
float n;
scanf("%f",&n);
printf("%.5f", 1/n);
return 0;
}
在這段代碼中,沒有浮動文字和沒有(float)
演員。
從技術上講,這應該這樣做:
printf("%.5f ", 1/pow(n,1));
......如何讓一個沒有浮動的浮動?無論如何,你爲什麼要這麼做? – quasiverse 2012-07-15 03:03:19
你可以通過'1./n'或'1f/n'做隱式轉換來將float/double引入到計算中。除法運算符的任何一個操作數都必須爲float/double,以便結果爲float/double。對於'printf',你必須使用'%.5f'(float)或'%.5lf'(double)。 – nhahtdh 2012-07-15 03:05:22
「輸出最多5個十進制字符」,您不會將其轉換爲十進制,而是浮動。 – fazo 2012-07-15 03:07:22