尝试隔离某些数组项并评​​估它们是否相等

时间:2011-11-29 02:05:50

标签: c++

我有一个包含[N]行或项目的fstream输入文件。我编写了代码来决定哪些项目是三角形,哪些是矩形,哪些是圆形。我必须只隔离三角形项目,然后比较它们,看它们是否等于+/- 0.1所有其他三角形项目的面积。然后我必须将相等的项目作为大写字母cout。

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

// ........................................................
// 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;

1 个答案:

答案 0 :(得分:0)

首先,当你进行比较时,你不会写a<b<c。正确的应该是a<b && b<c。编译器应该在这里发出警告。

当您执行TAE=TA[i+1]时,我猜您的代码中尚未分配TA[i+1],其中包含任意值。

为什么将float用于ItmM?在您的计划中,您可以使用int