【问题标题】:How to have multiple int values in every element in a one dimensional array?如何在一维数组的每个元素中都有多个 int 值?
【发布时间】:2019-11-05 19:26:19
【问题描述】:

我想用两个 int 值填充一个一维数组。

当我在值周围没有括号的情况下运行我的代码时,我只得到第一个 int,当我在值周围使用括号运行它时,我只得到第二个 int。

输出应该像 x/y

感谢您的宝贵时间。

int main()
{
    cBruch cBruch[7];

    cBruch[0] = (3, 4);
    cBruch[1] = (24, -6);
    cBruch[2] = -5, -3;
    cBruch[3] = -14, 22;
    cBruch[4] = 21, 45;
    cBruch[5] = 7, -9;
    cBruch[6] = 2, 3;

    for (int i = 0; i < 7; i++)
    {
        cBruch[i].ausgabe();
    }

    return 0;
}

.h

class cBruch
{
private:
    int zaehler;
    int nenner;

    int ggt(int a, int b);
    void kuerzen();

public:
    cBruch(int zaehler_in = 0, int nenner_in = 1);
    ~cBruch();

    void ausgabe(); //output
};

.cpp

cBruch::cBruch(int zaehler_in, int nenner_in)
{
    zaehler = zaehler_in;
    nenner = nenner_in;

    cout << "Konstruktor Zaehler = " << zaehler << " Nenner = " << nenner << endl;
}

cBruch::~cBruch()
{
    cout << "Destruktor Zaehler = " << zaehler << " Nenner = " << nenner << endl;
}

void cBruch::ausgabe()
{
    cout << "Bruch: " << zaehler << "/" << nenner << "\tGleitkommazahl: "<< double(zaehler) / nenner << endl;
}

【问题讨论】:

  • 使用 std::pair
  • @HolyBlackCat 我认为这已经足够了。我更新了我的代码
  • 显然我看不懂...你需要{}而不是()
  • 不要用任何声称“已解决”的文字来更新您的标题或问题正文。相反,您应该接受最佳答案(这就是将问题标记为有解决方案的方式)。如果没有现有答案可以回答您的问题,您可以创建并接受您自己的答案。

标签: c++ arrays int


【解决方案1】:

你应该像下面这样初始化你的数组:

cBruch cBruch[] = {{3, 4},{24, -6},{-5, -3},{-14, 22},{21, 45},{7, -9},{2, 3}};

【讨论】:

  • 最好为变量使用与类型不同的名称
【解决方案2】:

comma operator 将始终计算两边并返回右侧。它还拥有所有运算符的lowest precedence

所以,这个:

cBruch[2] = -5, -3;

评估为:

(cBruch[2] = -5), -3;

还有这个:

cBruch[0] = (3, 4);

将评估为:

cBruch[0] = 4;

您可能应该使用例如std::pair&lt;int, int&gt; 的数组(或者更好的是std::array)。

【讨论】:

    猜你喜欢
    • 2021-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-30
    • 1970-01-01
    • 2015-07-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多