首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从独立函数向数组中输入数据

如何从独立函数向数组中输入数据
EN

Stack Overflow用户
提问于 2014-03-18 13:41:34
回答 1查看 113关注 0票数 0

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

现在,我需要将9个给定的值放入数组中,我已经这样做了。然后我需要使用两个独立的函数来计算体积和周长,我需要使用一个循环来重复所有3个盒子的计算。函数计算周长和体积后,需要将6个值(3个周长和3个体积)放置在数组中,然后显示。

我初始化了一个数组,并在代码中存储了9个值。我创建了两个独立的函数来计算周长和体积。我使用了一个循环,这样就可以计算出所有三个盒子的周长和体积。现在我在弄清楚如何将计算出的值存储到数组中时遇到了麻烦?

下面是我的代码:

代码语言:javascript
运行
复制
    #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);

    }
EN

回答 1

Stack Overflow用户

发布于 2014-03-18 14:25:01

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

代码语言:javascript
运行
复制
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循环的第一次迭代中被调用。当在函数中调用返回语句时,该函数实际上将在那里停止运行并返回该值,这意味着主函数在实际到达对边界和音量函数的调用之前就停止了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22471260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档