• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:n進数を10進数に変換するプログラムがわかりません)

n進数を10進数に変換するプログラムがわかりません

このQ&Aのポイント
  • 整数n(2<=n<=16)とn進数の数字列digitsを与えると10進数に変換して表示するプログラムを作成したいです。
  • プログラムの中で使用するbase2dec関数についても間違っていると感じています。
  • n進数から10進数への変換方法は理解していますが、具体的な実装がわからないです。

質問者が選んだベストアンサー

  • ベストアンサー
  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.2

★アドバイス >for(i=0; i=digits.size()-1; i++){  ↑  この行がおかしいです。  間違い⇒for(i=0; i=digits.size()-1; i++){  正しい1⇒for(i=0; i<=digits.size()-1; i++){  正しい2⇒for(i=0; i<digits.size(); i++){  ※回答者 No.1 さんのアドバイス通りです。 >void関数の中、特に計算方法が間違っていると思うのですが、なにがいけないかわかりません。  ↑  『dec=(x*n);』ここが違う気がします。  『dec=(dec*n+x);』とすればいいと思いますけど。 >ちなみにn進数から10進数に直す方法は理解しています。  ↑  理解しているのなら『dec=(dec*n+x);』となると思いますが…。 その他: >if(cin >> digits[i++]){ … }  ↑  このifブロック内は必要なのか?  どういう意味。 >int value = dec;  ↑  最後のこの行は意味ないね。  『value』を参照してないし。  戻してないし。  そもそも dec が『参照』ですよ。  http://next1.msi.sk.shibaura-it.ac.jp/MULTIMEDIA/CPPPUBLISH/node8.html→『ポインタと参照』  このリンクを読みましょう。 ・以上。あと16進などのA~Fは大文字専用ですね。小文字だと上手く変換できませんよ。

参考URL:
http://next1.msi.sk.shibaura-it.ac.jp/MULTIMEDIA/CPPPUBLISH/node8.html
mark_2
質問者

お礼

的確なアドバイスありがとうございます。自分の間違いがよくわかりました。変なミスばっかで申し訳なかったです。参考URLのページもとても参考になりました。ありがとうございました。

その他の回答 (1)

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.1

>for(i=0; i=digits.size()-1; i++) 終了条件で代入してどうする?? i == digits.size()-1 でもモチロン間違ってますが。 それ以降のコードは読んでません。

mark_2
質問者

お礼

そりゃそうですよね。よくよく見返したら変なのは当然でした・・・ 教えてくれてありがとうございました。

関連するQ&A