2012-03-03 2 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 문을 만족시키는 값을 제공 했으므로 "하지만 공백이 나온다.루프를 사용하여 목록에 숫자를 표시하십시오 (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

관련 문제