P1143 進製轉換(C語言)

2021-10-08 18:40:57 字數 1311 閱讀 6244

核心思路:先把輸入的轉化為10進製數,然後再轉化為所需要的進製

1.將該進製數轉化為十進位制數需要乘該進製數,再**中則要逆序轉換

2.題目中還有要注意的地方輸入的為字元而不是數字時,需要轉化數值的大小,用到的

函式isdigit(a) 判斷輸入的字串是否為整數

if

(isdigit

(a[i]))

//isdigit是判斷是不是字元型 整型 陣列的函式

b[i]

= a[i]

-'0'

;//轉換成數

else

//是字母

b[i]

=(a[i]

-'a')+

10;//轉換成數,記得 + 10

3.轉換為十進位制

int len1 = i;

//i出來之後就是長度

for(i = len1 -

1; i >=

0; i --

)

4.轉換為所需要的進製n,則需要除n取餘法

//轉換成m進製時用來表示下一位放在**的指標

while

(sum >=1)

#include

#include

int main (

)int len2 =0;

//轉換成m進製時用來表示下一位放在**的指標

while

(sum >=1)

for(

int i = len2 -

1; i >=

0; i --

)//倒著輸出

if(c[i]

<10)

printf

("%d"

, c[i]);

//是數字

else

printf

("%c"

, c[i]-10

+'a');

//是字母

return0;

}

P1143 進製轉換

然後說一說如何進行n進製轉10進製或10進製轉m進製。n進製轉10進製 10進製轉m進製 include include include include include include include include include include using namespace std defin...

洛谷P1143 進製轉換

請你編一程式實現兩種不同進製之間的資料轉換。輸入格式 輸入資料共有三行,第一行是乙個正整數,表示需要轉換的數的進製n 2 n 16 第二行是乙個n進製數,若n 10則用大寫字母a f表示數碼10 15,並且該n進製數對應的十進位制的值不超過1000000000,第三行也是乙個正整數,表示轉換之後的數...

洛谷 P1143 進製轉換

請你編一程式實現兩種不同進製之間的資料轉換。輸入格式 輸入資料共有三行,第一行是乙個正整數,表示需要轉換的數的進製n 2 n 16 第二行是乙個n進製數,若n 10則用大寫字母a f表示數碼10 15,並且該n進製數對應的十進位制的值不超過1000000000,第三行也是乙個正整數,表示轉換之後的數...