這是我的代碼的一部分:在下面的第一部分中,我已經聲明瞭一堆浮點數和整數。我已經編寫了一個包含三列數據的輸入文件。每個訂單項都代表一種形狀。矩形,三角形或圓形。我已經成功確定哪些項目是哪個。在下面,我試圖獲取這些數據並計算每個形狀的面積。對於圓,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')。 –