演算法筆記3 5進製轉換 scanf的返回值

2021-10-22 03:57:21 字數 1106 閱讀 7637

題目描述

輸入兩個不超過整型定義的非負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...