C語言實戰(一)

2021-04-18 11:46:24 字數 832 閱讀 8741

一、乙個價值三天的bug

int  fscanf(file *stream,char const *format,...)

int  scanf(char const *format,...)

int sscanf(char const *string,char const *format,...)

功能從輸入源讀取字元。函式的返回值就是轉換的輸入值的數目。

//出現錯誤,格式碼d,十進位制整型資料,並按有符號數儲存,如果整型引數比預設的整型引數更長或者更短時,在格式**中省略限定符就是乙個常見錯誤。

//限定符 h  ,修改有些格式**的含義,hd不再是預設整型,而是short int

二、浮點數比較

程式中這麼做f1==f2,可是明明相等但是程式中卻按不相等的去做了,浮點數不能這樣去比較;如

float f=25.095;

if(f==25.095)printf(、、、);//結果判斷f不等於25.095,這是因為計算機表達浮點數時不能確切表示,故將25.095表達為25.0949999。

應該如此比較判斷:

if(   fabs(f1-f2)   <   預先指定的精度 )//精度0.00000001    

浮點運算後,結果在存入記憶體中會產生捨入,這很可能會帶來誤差,因此,我們應當盡量使用高精度的資料型別,比如用gcc的時候,我們盡量使用long   double而非double、float,這會減少相當多的錯誤機會。作為一般的比較,你設定好差值精度再比較就行了。

完整的比較:

bool isequal(float a, float b, float abserror, float relerror )

C語言實戰(二)

1 迴圈左移函式 rotl 和迴圈右移函式 rotr rotl 將乙個無符號整形數左迴圈移位的函式 原形 unsigned rotl unsigned value,int count 功能 將value向左迴圈移動count位。返回值 將value向左迴圈移動count位後的值。頭文件 stdlib...

讀《Go 語言實戰》

英文版書名 go in action william kennedy brian ketelsen eirk st.martin 著2017年3月 第 1 版 go 語言是現代的,快速的,帶有乙個強大的標準庫。內建對併發的支援 使用介面作為 復用的基礎模組。一,go語言介紹 二,快速開始乙個go程式...

R語言實戰MDS

原理戳這裡 超愛學習 機器學習演算法 mds降維演算法 zhuanlan.zhihu.com 1度量mds 衡量距離用歐式距離,對鳶尾花資料進行降維 圖1使用歐式距離對鳶尾花資料進行mds降維 2度量mds 衡量距離使用曼哈頓距離,對鳶尾花資料降維 library stats library ggp...