如何从Independent函数将数据输入到数组中

时间:2014-03-18 05:41:34

标签: c++ arrays function

我目前正在开展一个项目。我需要编写一个程序来计算3个盒子的周长和体积。盒子的高度,宽度和深度分别为10,20,30,40,50,60,70,80,90。前3个元件分别代表第一个盒子的高度,宽度和深度。第二组三个代表第二个框,后三个代表最后一个框(高度,宽度,深度)。

现在我需要将9个给定的值放在数组中,我已经完成了。然后我需要使用2个独立的函数来计算音量和周长,我需要使用循环来重复所有3个框的计算。一旦函数计算出周长和体积,就需要将6个值(3个周长和3个体积)放在数组中,然后显示。

我初始化了一个数组并将9个值存储在代码中。我创建了两个独立的函数来计算周长和音量。我使用了一个循环,以便计算所有三个框的周长和体积。现在我无法弄清楚如何将计算值存储到数组中?

这是我的代码:

    #include<iostream>

    using namespace std;

    struct myArrayWrapper
    {
        int m_array[9];//Array for the 9 given values
        int n_array[6];//Array for the 6 values we will be computing

    };

    int perimeter(myArrayWrapper a)//function to calculate the perimiter
    {
        int p;
        int* A = a.m_array; 
        int* B = a.n_array;
        for(int b = 0 && int a = 1 && int s = 0; a < 8 && b < 9; a+=3 && b+=3 && s+=2) {//for loop to calculate the perimeter of the 3 boxes
        p = 2*A[a] + 2*A[b];
    }

    }

    int volume(myArrayWrapper a)// function to calculate the volume
    {
    int v;
    int* B = a.m_array;//pointer
    for(int c = 0 && int d = 3 && int e = 6; c < 3; c+=3 && d+=3 && e+=3){
        int v;
        v = B[c]*B[d]*B[e];

    }

    }


    int main()
    {
    myArrayWrapper obj;
    obj.m_array[0] = 10;//height of box 1
    obj.m_array[1] = 40;//height of box 2
    obj.m_array[2] = 70;//height of box 3
    obj.m_array[3] = 20;//width of box 1
    obj.m_array[4] = 50;//width of box 2 
    obj.m_array[5] = 80;//width of box 3
    obj.m_array[6] = 30;//depth of box 1
    obj.m_array[7] = 60;//depth of box 2
    obj.m_array[8] = 90;//depth of box 3

    for(int x = 0; x < 8; x++){//Loop that checks to make sure that the given dimensions are greater than 0
    if(obj.m_array[x]>0)
        cout << "Element number " << x << "is greater than 0" << endl;
    else
        cout << "The element is not greater than 0" << endl;
    return 0;
    }

    perimeter(obj);
    volume(obj);

    }

1 个答案:

答案 0 :(得分:0)

你需要使用的是return语句。这将允许您的函数实际返回它们正在计算的值,因此您的周长函数看起来更像是这样:

int perimeter(myArrayWrapper a)//function to calculate the perimiter
{
    int p;
    /* your code */
    p = 2*A[a] + 2*A[b];
    return p;
}

这将返回为p计算的整数值,然后在主循环中,您可以将返回的值分配给数组中想要的位置。

有关退货声明here.

的更多信息

另一件可能给你带来麻烦的事情是我注意到你的main函数中的return语句将在你的for循环的第一次迭代中被调用。当在函数内调用return语句时,该函数实际上将停止在那里运行并返回该值,这意味着您的主函数在实际到达对周边和音量函数的调用之前就已停止。