试图隔离某些数组项并计算它们是否相等

Trying to isolate certain array items and evaluate them for equality

本文关键字:计算 是否 隔离 数组      更新时间:2023-10-16

我有一个有[N]行或项的fstream输入文件。我已经编写了代码来决定哪些是三角形,哪些是矩形,哪些是圆形。我需要分离出三角形元素然后比较它们看它们是否等于所有其他三角形元素面积的+/- 0.1。然后我要把相等的项数成大写字母。

这是我的代码到目前为止,但它不能正常工作。它给我的是数组中最后一个元素加上一个不存在的元素。我该如何解决这个问题?

// ........................................................
// 4. List any triangular blocks that are the same size.
// ........................................................
float TAE = 0.0;
float ItmM = 0.0;
for (int i=0; i<M; i++)
{
  if (btype[i] == Triangles)
  {
    TA[i] = (0.5 * (D[i] * E[i]));
    TAE = TA[i+1];
    if ((TA[i] - 0.1) <= TAE <= (TA[i] + 0.1))
    {
      TAE = TA[i];
      ItmN = i;
      ItmM = i+1;
    }
  }
}
cout << "4. Triangular blocks that are the same size = "
     << (char)('A' + ItmN) << "&" << (char)('A' + ItmM)
     << endl;

首先,当你做比较时,你不写a<b<c。正确的应该是a<b && b<c。编译器应该在这里给出一个警告。

当你做TAE=TA[i+1]时,我从你的代码中猜测TA[i+1]还没有分配,它可以包含任意值。

为什么用float代替ItmM ?在您的程序中,您可以使用int .