我一直在線性搜索算法的輸出中掙扎了一段時間。我有搜索列表並返回位置的函數,如果找不到它,則返回-1,或找到匹配數字的數字值。有關如何使其正確輸出的建議?C++線性搜索算法
輸出需要通過testList進行搜索,看是否該號碼是在stdList,並給予其位置
數量1(34)中的位於位置15
數2(74)爲不在文件中。
編號3(56)未在文件中。
號4(103)中的位於位置75
等
這裏是代碼的主要部分,我與具有問題。
ARRAY_STANDARD指的是數組stdList的大小。
stdList正在比較的陣列針對
位置,不過是正在由功能searchList()
testList指的陣列正被比較stdList返回
值是元素我們正在尋找
//Outputs
if (position == -1)
cout << "Number " << testCount+1 << "(" << testList << ")" << " was not in the file." << endl;
else
cout << "Number " << testCount+1 << "(" << testList << ")" << " was located in position " << value << endl;
}
int searchList(int stdList [], int numElems, int value)
{
int index=0;
int position = -1;
bool found = false;
while (index < numElems && !found)
{
if (stdList[index] == value)
{
found = true;
position = index;
}
index++;
}
return position;
}
如果你的循環內容不使用循環迭代器'x',你爲什麼期望這樣做有意義?你也可以刪除循環並獲得相同的輸出。這裏有些事情是嚴重錯誤的。 – Domi
它正在讀數組,x只是一個計數器。 – Simsyy
_什麼是讀數組?您的循環每次只會計算相同的'if(position == -1)'語句,並且不會更改除'x'之外的任何變量的值。沒有任何代碼指向摘要中提到的'stdList'或'searchList()',沒有更新'testList'或使用'value'的東西。 –