gpt4 book ai didi

c++ - 我的代码不会输出正确的项目编号

转载 作者:行者123 更新时间:2023-11-28 08:13:48 24 4
gpt4 key购买 nike

这是我的代码的一部分:在下面的第一部分中,我声明了一堆 float 和整数。我已经 fstream 了一个包含三列数据的输入文件。每个行项目代表一个形状。矩形、三角形或圆形。我已经成功地确定了哪些项目是哪些。下面我试图获取该数据并计算每个形状的面积。对于圆形,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(项目编号)是错误的。

最佳答案

您的代码甚至无法获得最大面积,就好像 MRA 小于 MCAMCA 小于 MTA,输出将是 MCA 的区域,因为两个 else 部分都不会执行。

为了清晰起见,还应该定义一个单独的变量来表示最大面积,而不是重复使用MRA,最后判断最大面积的一段应该放在整个之外 循环,而不是内部。

float maxA = MRA;
ItmN = ItmR;
if (maxA < MCA)
{
maxA = MCA;
ItmN = ItmC;
}
//else
if (maxA < MTA)
{
maxA = MTA;
ItmN = ItmT;
}
//else
//{
// maxA = MRA;
// ItmN = ItmR;
//}

cout << maxA << " " << ItmN << endl;

关于c++ - 我的代码不会输出正确的项目编号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8292374/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com