我有點需要幫助來獲得最低限度,我一直保持十三歲,有人可以幫助我嗎?我相信的問題是我沒有顯示低 n 線的公式我很困惑我試圖切換陣列的值但我無法弄清楚是否有人可以向我解釋。
#include <iostream>
using namespace std;
int getHighest(int numArray[], int numElements);
int getLowest(int numArray[], int numelements);
int main()
{
int numbers[4] = { 13, 2, 40, 25 };
cout << "The highest number in the array is " << getHighest(numbers, 4) << "." << endl;
cout << "The lowest number in the array is "<< getLowest(numbers,0) << "." << endl;
return 0;
}
int getHighest(int numArray[], int numElements)
{
int high = numArray[0];
for (int sub = 1; sub < numElements; sub = 1)
if (numArray[sub] > high)
high = numArray[sub];
return high;
}
int getLowest(int numArray[], int numElements)
{
int low = numArray[0];
for (int sub = 0; sub >= numElements; sub--)
if (numArray[sub]< low)
low = numArray[sub];
return low;
}
uj5u.com熱心網友回復:
這是更正的示例:
int getLowest(int numArray[], int numElements)
{
int low = numArray[0];
for (int sub = 1; sub < numElements; sub)
{
//std::cout<<"checking: "<<numArray[sub]<<"with"<<low<<std::endl;
if (numArray[sub]< low){
low = numArray[sub];
}
}
return low;
}
完整的作業示例在這里
另請注意,在您給出的示例中,您在以下位置犯了錯誤:
cout << "The lowest number in the array is "<< getLowest(numbers,0) << "." << endl;
而不是將 0 作為第二個引數傳遞,您應該像我在這里所做的那樣傳遞 4 。
另一個錯誤是subfor 回圈中變數的初始值。你從而sub = 0不是開始sub = numelements - 1。那是for回圈應該看起來像:
//note in the next line we have sub >=1 instead of sub>=0 becuase you have already stored numArray[0] in variable low
for (int sub = numElements -1; sub >=1; --sub)
{
...other code here
}
uj5u.com熱心網友回復:
關于getLowest():
實際上沒有必要向后迭代。它可以像在getHighest(). 然而,說這是教學的要求……
測驗陣列是
int numbers[4] = { 13, 2, 40, 25 };
// indices: 0 1 2 3
// number of elements: 4
向后迭代的回圈必須從 index numElements - 1(3在這種情況下)開始并在 index 處停止0。
for (int sub = numElements - 1; sub >= 0; sub--)
盡管如此,這將檢查在回圈之前已經分配的最后一個元素。(出于這個原因getHighest(),從第二個元素開始回圈:for (int sub = 1;……)因此,這可以更正為:
for (int sub = numElements - 2; sub >= 0; sub--)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/322692.html
