我在这里有问题,请您帮我一下。程序运行正常,直到创建了三角形。变量的值没有传递给函数,因此在输出中我只能看到零。如何修复?
这是我的任务:
嵌套结构
创建一个包含三个结构的程序,以描述3维空间中的点,线和三角形。使第一个类型为“点”的结构保留空间中任何点的x,y和z坐标。然后制作另一个“线”类型的结构,其中包含两个描述线的起点和终点的点结构。最后,创建一个包含三个点结构的“三角形”结构,这些点结构可容纳三角形的顶点。
您将需要创建三个函数来接收这些结构。的 第一个功能将从2个点中创建一条直线。第二个函数从3个点中创建一个三角形,第三个函数从一条线和一个点中创建一个三角形。通过引用将线和三角形传递给函数,并在main()中打印它们的值。
然后在“ 0,0”,“ 1,1,1”和“ -1,-1,-1”处创建三个点。使用这三个点来创建3行:第1行开始于“ 0,0”,结束于“ 1,1”;第2行从“ 1,1”开始,到“ -1,-1,-1”结束;第3行从“ -1,-1,-1”开始,到“ 0,0”结束。然后将相同的三个点传递给该函数以形成一个三角形。最后但并非最不重要的一点是,将第2行和第1点传递到该函数以创建一个三角形。
这是我试图做到的方式:
#include <iostream>
#include <string>
using namespace std;
struct point
{
int x;
int y;
int z;
}a;
struct line
{
point pl1;
point pl2;
}line_1;
struct triangle
{
point pt1;
point pt2;
point pt3;
};
struct triangle1
{
line line1;
line line2;
point pt3;
};
void func1(line line_1,point pl1,point pl2)
{
line_1.pl1;
line_1.pl2;
cout << "Line begins at x = " << pl1.x << ",y = " << pl1.y << ",z = " << pl1.z << endl;
cout << "Line ends at x = " << pl2.x << ",y = " << pl2.y << ",z = " << pl2.z << endl;
}
int func2(triangle triangle_1,point pt1,point pt2,point pt3)
{
triangle_1.pt1;
triangle_1.pt2;
triangle_1.pt3;
cout << "Triangle has vertices at: " << triangle_1.pt1.x << triangle_1.pt1.y << triangle_1.pt1.z << "," << triangle_1.pt2.x << triangle_1.pt2.y << triangle_1.pt2.z << " " << triangle_1.pt3.x << triangle_1.pt3.y << triangle_1.pt3.z << endl;
return 0;
}
int func3(triangle1 triangle,line line1,line line2,point pt3)
{
triangle.line1;
triangle.line2;
triangle.pt3;
cout << "Triangle has vertices at: " << triangle.line1.pl1.x << triangle.line1.pl1.y << triangle.line1.pl1.z << " " << triangle.line2.pl1.x << triangle.line2.pl1.y << triangle.line2.pl1.z << " " << triangle.pt3.x << "," << triangle.line2.pl1.y << "," << triangle.line2.pl1.z << endl;
return 0;
}
int main()
{
point a = { 0,0 };
point b = { 1,1 };
point c = { -1,-1,-1 };
line line__1 = { 0,0 },line__2 = { 0,line__3 = { 0,0 };
func1(line__1,a,b);
func1(line__2,b,c);
func1(line__3,c,a);
triangle triangle__1 = { 0,0 };
func2(triangle__1,c);
triangle1 triangle_1 = { 0,0 };
func3(triangle_1,line__2,line__3,c);
system("pause>nul");
return 0;
}