这是我的代码的一部分:在下面的第一部分中,我已经声明了一堆浮点数和整数。我已经编写了一个包含三列数据的输入文件。每个订单项都代表一种形状。矩形,三角形或圆形。我已经成功确定哪些项目是哪个。在下面,我试图获取这些数据并计算每个形状的面积。对于圆,pi * r^2,矩形,长*宽,等边三角形,1/2L * H。所以,我将每个形状类型的最大面积放在一个带有条件的循环中。我可以成功地获得所有三种形状的正确的最大面积,但我无法获得输出正确项目编号的代码。你能帮我吗?我的代码不会输出正确的项目编号
// 3. Which block has the largest area?
// ........................................................
float RA[M];
float CA[M];
float TA[M];
float MRA = 0.0;
float MCA = 0.0;
float MTA = 0.0;
int ItmR = 0;
int ItmC = 0;
int ItmT = 0;
int ItmN = 0;
// ........................................................
for (int i=0; i<M; i++)
{
if (btype[i] == Rectangles)
{
RA[i] = D[i] * E[i];
if (MRA < RA[i])
{
MRA = RA[i];
ItmR = i+1;
}
}
//}
//cout << "The block with the largest area is " << ItmR
// << endl;
// ........................................................
//for (int i=0; i<M; i++)
//{
if (btype[i] == Circles)
{
CA[i] = (3.14 * (D[i] * D[i]));
if (MCA < CA[i])
{
MCA = CA[i];
ItmC = i+1;
}
}
//}
//cout << "MCA = " << MCA << ", Item No. " << ItmC
// << endl;
// ........................................................
//for (int i=0; i<M; i++)
//{
if (btype[i] == Triangles)
{
TA[i] = (0.5 * (D[i] * E[i]));
if (MTA < TA[i])
{
MTA = TA[i];
ItmT = i+1;
}
}
//}
//cout << "MTA = " << MTA << ", Item No. " << ItmT
// << endl;
// ........................................................
if (MRA < MCA)
{
MRA = MCA;
ItmN = ItmC;
}
else
if (MRA < MTA)
{
MRA = MTA;
ItmN = ItmT;
}
else
{
MRA = MRA;
ItmN = ItmR;
}
}
cout << MRA << " " << ItmN << endl;
我不知道如何让它输出正确的答案项目编号。该代码明确输出正确的区域,但ItmN(项目编号)是错误的。
我编辑你的帖子以从代码块中删除反引号,它们在那里不需要。 –
你得到了什么样的物品编号,你期望什么? –
学习使用调试器(例如Linux上的'gdb'),并在启用所有警告的情况下编译代码(在Linux上使用'gcc -Wall -g')。 –