English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

我是c的初學者,想半天想不到辦法...
誰能給點提示呢?
比如說我要把十進位的33不用%x的方法,輸出成十六進位的21,要怎麼做?(15點)

2006-12-16 11:50:45 · 2 個解答 · 發問者 ? 3 in 電腦與網際網路 程式設計

我要轉的整數,是要讓使用者自由輸入的,怎辦?

2006-12-16 12:25:30 · update #1

2 個解答

最簡單的方式是使用 stdlib 的 itoa() function.
ex:

char buf[33]; // 準備一個空間放轉換後的字串

itoa(33,buf,16); // itoa( 要轉換的整數 , 結果存放位址, 多少進位 )
puts(buf); // 輸出字串

2006-12-16 17:56:31 補充:
// 不就這樣而已

int n;
char buf[33];

scanf("%d",&n);
itoa(n,buf,16);
pus(buf);

2006-12-16 17:57:37 補充:
puts(buf); 漏一個 t

2006-12-16 12:09:29 · answer #1 · answered by 鳳琳 5 · 0 0


回應補充:
修改 scanf 輸入的變數為字元陣列 (字串) 型態
用迴圈逐步比較字元 1~10 ,如果當中含非數字的字元,中斷迴圈,並回報訊息告訴使用者輸入錯誤,請重新輸入,直到正確為止。
輸入正確時,將輸入的資料轉成整數值再作處理即可。


2006-12-16 23:43:14 補充:
有句話錯誤

是「用迴圈逐步比較字元 0~9」才對。

2006-12-16 18:42:07 · answer #2 · answered by Big_John-tw 7 · 0 0

fedest.com, questions and answers