2-10 計算分段函數[1]
本題目要求計算下列分段函數f(x)的值:

輸入格式:
輸入在一行中給出實數x。
輸出格式:
在一行中按“f(x) = result”的格式輸出,其中x與result都保留一位小數。
//****注意1.關於%f與%lf:*******
//輸入時float對應%f, double對應%lf; 輸出時float和double都對應%f
#include <stdio.h>
int main(){
float x;
float result;
scanf("%f", &x);
if(x == 0){
result = 0.0;
}else{
result = 1 / x;
}
printf("f(%.1f) = %.1f", x, result);
return 0;
}
注意
1、printf的%f說明符既可以輸出float型又可以輸出double型。根據“默認參數提升”規則(在printf這樣的函數的可變參數列表中,不論作用域內有沒有原型,都適用這一規則)float型會被提升為double型。因此printf()只會看到雙精度數。
2、scanf對於float類型必須用%f,double必須用%lf 對於scanf,情況就完全不同了,它接受指針,這里沒有類似的類型提升。(通過指針)向float存儲和向double存儲大不一樣,因此,scanf區別%f和%lf。
3、事實上,printf中沒有定義%lf,但是很多系統可能會接受它。要確保可移植性,就要堅持使用%f。
要想保留小數位數,請使用(比如保留8位小數): printf("%.8f",a)
