首页 > 解决方案 > 将三角形定义为具有坐标的数据类型。计算三角形的内容

问题描述

我是编程新手,但我正在努力变得更好,这就是我要解决的问题。

我需要用正方形 (0,1) x (0,1) 内的顶点定义数据类型三角形。编写一个计算其面积的函数。编写一个程序,生成 100x 三元组的 x、y 坐标对作为十进制数,并计算生成的三角形的平均面积。

听起来可能很难,但事实并非如此,我想我知道该怎么做,但我只是不知道如何写下来。我需要计算随机坐标的距离。然后将所有 100 个三角形的内容相加,除以 100。

我所拥有的是:

#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;

int main ()
{
    srand(time(NULL));
    
    int x, y;
    int sizeOfSquare=10;
    int triangle(a,b,c); //sides of triangle
    
    int arrX[3];
    int arrY[3];
    
    
    for(int i=0; i<3; i++)
    {
        x = rand()%sizeOfSquare+1;
        y = rand()%sizeOfSquare+1;
        
        arrX[i] = x-1;
        arrY[i] = y-1;
        
        //-1 to get a chance of zero
    }
    
    for (int i=0;i<3; i++)  //this is just for me to see the coordinates
        cout << "(" << arrX[i] << "," << arrY[i] << ")" << endl;
    
    
return 0;   
}  

它在数组中生成随机坐标对,但我不知道如何计算数组之间的距离并将其分配给triangle

也许有更好的解决方案,如果我的代码不正确,请见谅。 感谢您的任何建议。

标签: c++math

解决方案


我认为你在正确的轨道上,但在解决这个问题之前你需要更多的工具。

首先它谈到data type:您需要一种存储有关每个三角形的信息的方法。有几种方法可以做到这一点,您需要了解structs.

这行代码没有达到您的预期:

 int triangle(a,b,c); //sides of triangle

这是一个“函数声明”,不允许存储或定义“数据类型”。

用数组存储坐标是一个好主意(也许比你的水平要复杂一点,但我认为你会管理得很好)。您可能可以简化“+1”和“-1”来生成这些坐标。

其中的关键部分是创建正确的数据类型。您需要一种方法来存储每个三角形的数据。然后还必须存储每个三角形。你已经为一个三角形工作得很好,一旦你弄清楚如何存储每个三角形,找到几个会更容易。

一旦你有了这些三角形,找到每个三角形的区域会更容易。在这一点上,将它们存储在数组中并总结起来对您来说应该是显而易见的。

希望这对您有所帮助,不要担心正确的解决方案和更好的解决方案。让它首先工作,并确保你首先理解它!


推荐阅读