0

私は C++ の初心者であり、これは私のクラスで行う必要がある単なるプログラムであることを覚えておいてください。私は実際にそれをどのように行うかを理解していると思います。while ループの制御条件として何を設定すればよいかわかりません。与えられた任意の 8 進数を変換できるはずですが、最初の数値に達したときに停止する必要があることをどのように知ることができますか? %10 (別名 %10、%100、%1000) の増加単位を使用して右から左に数字を進めていますが、それをやめるべき時期をどのように知ることができますか? 112 の場合と同様に、%10、%100、%100 を実行する必要がありますが、それを超えてはいけません。

#include <iostream>
#include <cmath>
using namespace std;

int main ()
{
  cout <<"Please enter the octal number to be converted: " <<
  int octal;
  cin >> octal;

   int remainder = 0;
   int modular = 10;

  int conversionToDecimal = 0; 
  while(modular < ***********)
  remainder = octal%modular;
  if (remainder < 10)
  {
   conversionToDecimal = conversionToDecimal + (remainder *(int)pow(8.0,count));
    count = 0;
    modular = modular*10;
  }
  else
  {
    remainder = remainder/10;
    count++;
  }

明らかに、プログラムは完全ではありません。これは、問題を発見したときに得たコードにすぎません。コードの助けが必要なところに*を置きます。本当にありがとう!要するに、8 進数の先頭から外れないようにループを制御するにはどうすればよいですか?

4

1 に答える 1

1

数値を 10 進数の文字列に変換する場合と同じ方法を使用できます。インデックスごとに 1 桁の配列です。反復ごとに、10 のモジュロを取り、その数字を格納してから 10 で割ります。(ループの最後で) number がゼロになると、完了です。

次に、配列から一度に数字を取り出し、「合計」に8を掛けて、現在の数字を追加します。残りの桁数がなくなったら、完了です。

これを行うための実際のコードを書くのはあなたに任せます。結局のところ、プログラミングを学ぶのはあなたです。私は 30 年以上プログラミングを行ってきました。

于 2013-02-13T01:32:26.807 に答える