2012-03-03 3 views
0
#include <iostream> 
#include <conio.h> 
using namespace std; 

class NumberBox 
{ 
private: 

    int number; 

public: 

    NumberBox *next_ptr; 
    void setNumber(int number) 
    { 
     this->number = number; 
    } 


    int getNumber() 
    { 
     return number; 
    } 
}; 

int main() 
{ 
    int number[5]; 
    int counter; 
    cout << "Please give 5 numbers" << endl; 
    for(counter = 4; counter > - 1; counter--) 
    { 
     cin >> number[counter]; 
    } 


    NumberBox *numberBoxListHead_ptr = new NumberBox(); 
    NumberBox *numberBoxListBody1_ptr = new NumberBox(); 
    NumberBox *numberBoxListBody2_ptr = new NumberBox(); 
    NumberBox *numberBoxListBody3_ptr = new NumberBox(); 
    NumberBox *numberBoxListTail_ptr = new NumberBox(); 

    numberBoxListHead_ptr->setNumber(number[4]); 
    numberBoxListHead_ptr->next_ptr = numberBoxListBody1_ptr; 

    if(numberBoxListHead_ptr->getNumber() == '5') 
    { 
     cout << "Outcome should be..." << endl; 
    } 
    numberBoxListBody1_ptr->setNumber(number[3]); 
    numberBoxListBody1_ptr->next_ptr = numberBoxListBody2_ptr; 
    if(numberBoxListHead_ptr->next_ptr->getNumber() == '5') 
    { 
     cout << "Use this as" << endl; 
    } 

    numberBoxListBody2_ptr->setNumber(number[2]); 
    numberBoxListBody2_ptr ->next_ptr = numberBoxListBody3_ptr; 
    if(numberBoxListBody1_ptr->next_ptr->getNumber() == '5') 
    { 
     cout << "Work" << endl; 
    } 

    numberBoxListBody3_ptr->setNumber(number[1]); 
    numberBoxListBody3_ptr->next_ptr = numberBoxListTail_ptr; 
    if(numberBoxListBody2_ptr->next_ptr->getNumber() == '5') 
    { 
     cout << "Please work" << endl; 
    } 

    numberBoxListTail_ptr->setNumber(number[0]); 
    if(numberBoxListBody3_ptr->next_ptr->getNumber() == '5') 
    { 
     cout << "Work???" << endl; 
    }; 

    getch(); 

} 

フィナーレについては、If文をリスト内で動作させるにはどうすればよいですか?If Statement "しかし、それは空白を出す。ループを使用してリストに表示されている番号を取得する(feat配列)

ノードを編集して条件を満たすために番号を送信すると、それは機能しますか?

+0

問題を示す最小限のプログラムを提供してください。 –

+0

これを小さくする方法がわかりません。 – JuanDelCarlos

+1

あなたは常に 'getNumber'を呼び出し、' setNumber'を呼び出すことはありません。これが誤字でない場合は、あなたのエラーです。 – mkaes

答えて

1

getNumber()を呼び出す前にsetNumber()に電話する必要があります。

numberBoxListHead_ptr->setNumber(number[0]); 
numberBoxListHead_ptr->next_ptr = numberBoxListBody1_ptr; 
cout << "The first number is " << numberBoxListHead_ptr->getNumber(number[0]) << endl; 

次に、他の数字についてもこれを繰り返します。

さらに、getNumber()に渡される 'takenumber'パラメータは実際には必要ありません。

+0

ありがとう!それを見つけた。 – JuanDelCarlos

1

numberBoxListHead_ptr->getNumber(number[0]);これは何もしません。ここでsetNumberを使用してください。また、あなたのgetNumber関数は必須ではないので、引数をとるべきではありません。そして、getNumberをconstメンバー関数にしてください。

+0

私はノードによってポインタに混乱していました。ありがとう! – JuanDelCarlos

関連する問題