【问题标题】:Using loops to take numbers giving it to list (feat Arrays) [closed]使用循环将数字列在列表中(壮举数组)[关闭]
【发布时间】:2012-03-21 17:36:09
【问题描述】:
#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 语句的值”,但它给出了空白。

如果我编辑节点以发送一个数字来满足条件,那会起作用吗?

【问题讨论】:

  • 请尝试给出显示问题的简约程序
  • 我不知道怎么把这个变小。
  • 你总是打电话给getNumber,而不是setNumber。如果这不是错字,那是您的错误。

标签: c++ arrays class list


【解决方案1】:

您需要先致电setNumber(),然后再致电getNumber()

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

然后对其他数字重复此操作。

此外,您实际上根本不需要传递给 getNumber() 的“takenumber”参数。

【讨论】:

    【解决方案2】:

    numberBoxListHead_ptr-&gt;getNumber(number[0]); 这没有任何作用,你应该在这里使用setNumber。此外,您的 getNumber 函数不应接受任何参数,因为它不是必需的。并且,将 getNumber 设为 const 成员函数。

    【讨论】:

    • 我对指向指针的节点感到困惑。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-27
    • 1970-01-01
    • 1970-01-01
    • 2020-04-04
    • 2019-01-29
    相关资源
    最近更新 更多