題目描述
輸入兩個不超過整型定義的非負10進製整數a和b(<=231-1),輸出a+b的m (1 < m <10)進製數。
輸入輸入格式:測試輸入包含若干測試用例。每個測試用例佔一行,給出m和a,b的值。
當m為0時輸入結束。
輸出輸出格式:每個測試用例的輸出佔一行,輸出a+b的m進製數。
樣例輸入 copy
2 4 5
8 123 456
0樣例輸出 copy
1001
1103
提示注意輸入的兩個數相加後的結果可能會超過int和long的範圍。
#include
intmain()
while
(sum!=0)
;for
(int i=num-
1;i>=
0;i--
)printf
("\n");
}return0;
}
好幾次不過的原因就是那個scanf的值那
scanf函式的返回值分為以下幾種情況:
正整數: 表示正確輸入引數的個數。
如果使用者輸入"3 4",可以正確輸入,返回2(正確輸入了兩個變數);
如果使用者輸入"3,4",可以正確輸入a,無法輸入b,返回1(正確輸入了乙個變數)。
0 :表示使用者的輸入不匹配,無法正確輸入任何值。
eof,這是stdio.h裡面定義的常量(通常為-1)表示輸入流已經結束。
在windows下,使用者按下ctrl+z(會看到乙個^z字元)再按下回車(可能需要重複2次),就表示輸入結束;linux/unix下使用ctrl+d表示輸入結束。
所以可以使用下面的**來處理輸入:
while (scanf("%s %c %c", str, &oldchar, &newchar) == 3) /* 或!= eof , 但前者更好 */
為什麼前面 scanf 的格式串裡面,%s和%c中間需要空格呢?
那是因為如果沒空格的話。。。oldchar輸入的就是空格了= =.
此外,printf的返回值是輸出的字元數,例如,printf(「1234」)的返回值是4,而printf(「1234\n」)的返回值是5
《演算法筆記》C 進製轉換
對於乙個p進製的數字,若要轉化為q進製,則需要兩部 第一步 將p進製的數字轉化為10進製 y a1 p n 1 a2 p n 2 an 1p an 如何實現?int x,p int y 0,pro 1 p表示進製 while x 0 將 十進位制轉換為q進製,除基取餘法 例如11轉換為2進製 首先1...
演算法筆記(六)進製轉換
兩種情況 1 將p進製 x 轉換為q進製 資料 要分兩步走 1 將p進製數在轉化為10進製數y 十進位制數形式為 y d1d2d3d4d5d6d7.dn 同可以寫為 y d1 10 n 1 d2 10 n 2 dn 1 10 dn p進製數x為a1a2a3a4a5a6.an,類似於十進位制轉化,同可...
進製轉換 演算法筆記
進製轉換步驟 將p進製轉換為q進製,需要分為兩步 int y 0,product 1 p進製x轉化為10進製的y while x 0 十進位制y轉化為q進製z int z 40 num 0 陣列z存放q的進製數y的每一位,num為位數 dowhile y 0 這樣陣列從高位z num 1 到低位nu...