此題只需用簡單的格式化輸出即可。以字串讀入輸入數值,若為負值,只需判斷索引為 0 的字元是否為字元 "-" (減號);若為16進位數,只需判斷索引為 0 的字元是否為字元 "0";以上判斷都為否時,則此數為10進位數。
當讀進10進位數時使用 %d 讀取,使用 0x%X 輸出( %x 為無號的十六進位整數);讀進16進位數時使用 %x 讀取,使用 %d 輸出即可。
以下為主程式程式碼:
int i, n;
char str[10];
while (1)
{
scanf ("%s", str);
if (str[0] == '-') break;
else if (str[0] != '0')
sscanf(str ,"%d" ,&n), printf("0x%X\n", n);
else
sscanf(str ,"%x" ,&n), printf("%d\n", n);
}
return 0;
By David.K
p10473題目連結
回ACM題庫目錄
回首頁
沒有留言:
張貼留言