我目前正在做一个项目。我需要写一个程序来计算3个盒子的周长和体积。方框的高度、宽度和深度分别为10、20、30、40、50、60、70、80、90。前3个元素分别表示第一个框的高度、宽度和深度。第二组三个表示第二个框,最后三个表示最后一个框(高、宽、深)。
现在,我需要将9个给定的值放入数组中,我已经这样做了。然后我需要使用两个独立的函数来计算体积和周长,我需要使用一个循环来重复所有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);
}
发布于 2014-03-18 06:25:01
听起来您需要使用的是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循环的第一次迭代中被调用。当在函数中调用返回语句时,该函数实际上将在那里停止运行并返回该值,这意味着主函数在实际到达对边界和音量函数的调用之前就停止了。
https://stackoverflow.com/questions/22471260
复制