次のように書いて、最大値のインデックス値を取得しました。最大値のインデックスを返します
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を印刷し続けます」 - このコードには何も出力がありません。記述している問題を引き起こす[最小、**完全**、例](https://stackoverflow.com/help/mcve)はどうですか?そしてfyi、 'temp = arr [i]'はどこかにあるほうが良いでしょう。そうしていれば、すべてを 'arr [0]'にあるものと比較するだけです。私のクリスタルボールは私に、 'arr [29]'がそうであると伝えます。 – WhozCraig
まず、変数名** iterator **の使用は非常に間違っています。リストの反復処理には使用されません。なぜ混乱を起こすのですか? MaxIndexなどのものを使うのがベストです。 –