我有一个包含[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;
答案 0 :(得分:0)
首先,当你进行比较时,你不会写a<b<c
。正确的应该是a<b && b<c
。编译器应该在这里发出警告。
当您执行TAE=TA[i+1]
时,我猜您的代码中尚未分配TA[i+1]
,其中包含任意值。
为什么将float
用于ItmM
?在您的计划中,您可以使用int
。