1、學完迴圈之後,如何把乙個十進位制正整數按二進位制形式輸出。作用,理解陣列的作用。注:不用陣列很難搞定,當然會用遞迴的話肯定學過陣列。
2、學完函式之後,如何把乙個浮點數的整數部分新增千分位符後輸出。
用庫函式
函式名: fcvt
功 能: 把乙個浮點數轉換為字串
用 法: char *fcvt(double value, int ndigit, int *decpt, int *sign);
引數:
value:要轉換的浮點數,輸入引數
ndigit:小數點後面的位數,輸入引數(超過的數字捨入。如果少於指定精度,用0填充)
decpt:表示小數點的位置,輸出引數
sign:表示符號,0為正數,1為負數,輸出引數
(字串中僅儲存數字,小數點位置和value的符號可以從該呼叫之後的dec和sign獲取。dec引數指向乙個整數值,這個整數值給出了小數點的位置,該位置是相對該字串的開始位置進行計數的,0或負值指出小數點在第乙個數字的左邊。引數sign指向乙個整數指出value的符號,如果value為正數,該整數為0,如果value為負數,它設定為乙個非0值。
ecvt和fcvt為轉換使用單個靜態分配的緩衝區,每次呼叫都消毀以前呼叫的結果。)
程式例:
#include
#include
#include
int main(void)
輸出為:
string = 9876000000 dec = 1 sign = 0
string = 123450000000000 dec = 3 sign = 1
string = 67890 dec = 5 sign = 0
問題一:
結果有差異
問題二:
記憶體用庫函式
函式名: gcvt
功 能: 把浮點數轉換成字串
用 法: char *gcvt(double value, int ndigit, char *buf);
引數 value——被轉換的值。
digits——儲存的有效數字位數。
buffe——結果的儲存位置。
說明 gcvt函式把乙個浮點值轉換成乙個字串(包括乙個小數點和可能的
符號位元組)並儲存該字串在buffer中。該buffer應足夠大以便容納轉換
的值加上結尾的空格字元,它是自動新增的。如果乙個緩衝區的尺寸為
digits的尺寸+1,該函式覆蓋該緩衝區的末尾。這是因為轉換的字串包
括乙個小數點以及可能包含符號和指數資訊。不提供上溢位。gcvt試圖
以十進位制格式產生digits數字,如果不可能,它以指數格式產生digits數字,
在轉換時可能截除尾部的0。
#include
#include
int main(void)
程式輸出為:
string = 9.876
string = -123.46
string = 67800
可以!使用sprintf函式
函式功能:把格式化的資料寫入某個字串
標頭檔案:
stdio.h
函式原型:int sprintf( char *buffer, const char *format [, argument] … );
返回值:字串長度(strlen)
修改後的**如下:
#include
#include
#include
#define float_precision 7
void main()
float aa=254.3已經轉化為char cc[100]= "254.3 "
討論 思考題
1 功能 編寫函式 float fun 利用以簡單迭代方法 xn 1 cos xn 求方程 cos x x 0 的乙個實根。迭代步驟如下 1 取x1 初值為0.0 2 x0 x1 把x1 的值賦給x0 3 x1 cos x0 求出乙個新的x1 4 若x0 x1 的絕對值小於 0.000001 執行步...
討論 思考題
1 功能 請編寫函式 void fun char s n char b 將 m行n列的二維陣列中的字元資料按列的順序依次放到乙個字串中。例如 二維陣列中的資料為 w w w w s s s s h h h h 則字串中的內容應是 wshwshwshwsh 2 功能 編寫函式 void fun cha...
趣味思考題
1.一間囚房裡關押著兩個犯人。每天監獄都會為這間囚房提供一罐湯,讓這兩個犯人自己來分。起初,這兩個人經常會發生爭執,因為他們總是有人認為對方的湯比自己的多。後來他們找到了乙個兩全其美的辦法 乙個人分湯,讓另乙個人先選。於是爭端就這麼解決了。可是,現在這間囚房裡又加進來乙個新犯人,現在是三個人來分湯。...