我已經寫了下面這個獲取最大數目的索引值。返回索引的最大值
int TravellingSalesMan::getMaximum(double *arr){
double temp = arr[0];
int iterator = 0;
for(int i = 0; i < 30; i++){
if(arr[i] > temp){
iterator = i;
}
}
return iterator;
}
但輸出保持步入條件語句,並不斷打印出29.我不知道爲什麼會這樣
我使用max_element(也嘗試過),但沒有運氣
EDIT
上述函數被調用,如下
static unsigned int chromosome = 30;
double value[chromosome]
for(int i = 0; i < chromosomes; i++){
value[i] = estimateFitness(currPopultaion[i]);
}
int best = 0;
best = getMaximum(value);
cout<<best<<endl; // this just prints out 29
投票結束,因爲缺少可重複的示例 –
「保持打印出29」 - 此代碼中沒有任何內容會生成任何輸出。如何處理產生你所描述問題的[minimal,** complete **,example](https://stackoverflow.com/help/mcve)?而且,'temp = arr [i]'最好在某處,否則你所做的就是將所有內容與'arr [0]'中的任何內容進行比較。我的水晶球告訴我,阿爾[29]就是這樣。 – WhozCraig
首先,你使用變量名**迭代器**是非常錯誤的。它不用於迭代列表。爲什麼會造成混淆?最好使用像MaxIndex或類似的東西。 –