スタックを使用して10進数を2進数に変換しようとしています。構造体を使用する必要があります。スタックを使用して10進数を2進数に変換する
構造体の私の理解から、それらのメンバー関数を持つことができます。スタックはLIFO戦略に従います。
構造体を作成したり、メンバーを宣言したり、これらのメンバーを初期化して処理したりするために、スタックを作成できます。
したがって、私は上記のものと私の理解との構造体を宣言しようとしましたが、私はまだコンセプトを得るようには思われません。私はそれが私の間違いだと信じています。しかし、読書フォーラムは、私たちがまだクラスを教えられていないので、助けにはならず、あらゆるフォーラム、構造、クラスが混在しています。
ここまでは私のコードですが、コンセプトとロジックに関するヘルプとガイダンスは大変ありがとうございます。
#include<iostream>
using namespace std;
struct bin{
int num[15];
int ci;
void init()
{
ci = 0;
for (int i = 0;i < 15;i++)
num[i] = -1;
}
void push(int n)
{
num[ci] = n;
ci++;
}
int pop()
{
int temp = num[--ci];
num[ci] = -1;
return temp;
}
};
int main()
{
int inp, count = 0;
bin var;
cout << "Enter a decimal number to convert into binary: ";
cin >> inp;
while (inp != 0)
{
int rem = inp % 2;
cout << "rem= " << rem << endl;
inp /= 2;
cout << "inp= " << inp << endl;
var.push(rem);
count++;
}
cout << "\nYour binary is: ";
while (count != 0)
{
cout << var.pop();
count--;
}
return 0;
}
私は間違いを見つけようとしましたが、できませんでした。
#include<iostream>
using namespace std;
void push(int bin[], int n, int &ci);
void init(int bin[], int &count, int &ci);
int pop(int bin[], int &ci);
void display(int bin[], int &count, int &ci);
void findBinary(int bin[], int &count, int&ci, int &inp);
int main()
{
int inp, count, ci;
int bin[20];
char c = '\0';
init(bin,count,ci);
cout << "Enter a decimal number to convert into binary: ";
cin >> inp;
findBinary(bin, count, ci, inp);
display(bin, count, ci);
return 0;
}
void init(int bin[], int &count, int &ci)
{
count = 0;
ci = 0;
for (int i = 0;i < 20;i++)
bin[i] = -1;
}
int pop(int bin[], int &ci)
{
int temp = bin[--ci];
return temp;
}
void push(int bin[], int n, int &ci)
{
bin[ci] = n;
ci++;
}
void display(int bin[], int &count, int &ci)
{
cout << "\nYour binary is: ";
while (count != 0)
{
cout << pop(bin, ci);
count--;
}
cout << endl;
}
void findBinary(int bin[], int &count, int&ci, int &inp)
{
while (inp != 0)
{
int rem = inp % 2;
inp /= 2;
push(bin, rem, ci);
count++;
}
}
を次のように、最後に私は単純に配列を使用してコードを実装だから私の質問は以下のとおりです。私たちは、構造体の中に関数を記述するとき、我々は構造体型のオブジェクトを作成するとき 1、関数が実行されません? 2.最初の例の構造体を使用してスタックを実装するために使用したメソッドは正しいですか?しかし、誰他の機能(そうではない、あなたのinit
機能) - あなたが最初struct
またはclass
、constructor実行からオブジェクトを作成
それを指摘してくれてありがとうが、コンパイルされていないので、私はそのコードを使用しませんでした。しかし、私は値を削除するためにpop関数の値を置き換える必要があります(-1は削除されたものとみなされます)。 –
最初の例のコードはコンパイルされ、うまく動作します。 "私はまだコンセプトライトを得ていないようだ" – hnefatl
2番目の注記では、私のオリジナルのポップ機能が正しいです。 ciはもともとデータを入力するために空のインデックスを指しています。 –