该程序有2个功能:我不明白第二个功能是什么
// first function:
int area( int length, int width)
{
return length*width;
}
// second function:
int framed_area(int x, int y)
{
return area(x-2,y-2);
}
答案 0 :(得分:0)
我认为您在遵循程序流程方面需要帮助。
如果长度和宽度都为2或更大,则framed_area的面积小于area函数的面积。将此程序视为较大矩形内部的较小矩形。我们想找到较小的内部矩形的面积。
假设我们已经知道我们的矩形为x = 8和y =4。假设从程序的另一部分调用framed_area并将结果存储在一个名为innerArea的变量中,如下所示:
int innerArea = framed_area(8,4);
当调用它时,framed_area然后对area进行函数调用,这样它可以得到减小的区域大小8-2和4-2或6 x2。在较大的8 x 4矩形内是6 x 2长方形。
int framed_area(int x, int y)
{
return area( x-2,y-2 );
/*gets reduced area of 12 = 6*2
with area(6, 2) */
}
在调用framed_area之后,变量innerArea现在为12。
这种写framed_area的替代方法可能使它更易于理解。
int framed_area(int x, int y)
{
int newArea = area(x - 2, y - 2);
return newArea;
}