私は C++ が初めてで、配列を返す関数 (配列を受け取る) を取得しようとして問題が発生しています。この関数は、サイズ 4 の整数の配列の非常に基本的な並べ替えアルゴリズムです。私が持っているものは以下のとおりです。
int[] sortArrayAscending(int arrayToSort[3]) {
int sortedArray[3];
sortedArray[0] = minOfFour(arrayToSort[0],arrayToSort[1],arrayToSort[2],arrayToSort[3]);
sortedArray[1] = lowerMidOfFour(arrayToSort[0],arrayToSort[1],arrayToSort[2],arrayToSort[3]);
sortedArray[2] = higherMidOfFour(arrayToSort[0],arrayToSort[1],arrayToSort[2],arrayToSort[3]);
sortedArray[3] = maxOfFour(arrayToSort[0],arrayToSort[1],arrayToSort[2],arrayToSort[3]);
return sortedArray;
}
私は、使用する必要がある構文で本当に混乱していると思います (min、lower、higher、max への関数呼び出しはすべて正常に動作します。
助けていただければ幸いです。
ありがとうございました
EDIT2:すべてのコメントをありがとう。@Rookと@Bob Yoplaitの回答のおかげで解決しました。使用されるコードは次のとおりです。
int* sortArrayAscending(int arrayToSort[4], int sortedArray[4]) {
sortedArray[0] = minOfFour(arrayToSort[0],arrayToSort[1],arrayToSort[2],arrayToSort[3]);
sortedArray[1] = lowerMidOfFour(arrayToSort[0],arrayToSort[1],arrayToSort[2],arrayToSort[3]);
sortedArray[2] = higherMidOfFour(arrayToSort[0],arrayToSort[1],arrayToSort[2],arrayToSort[3]);
sortedArray[3] = maxOfFour(arrayToSort[0],arrayToSort[1],arrayToSort[2],arrayToSort[3]);
return sortedArray;
}
int _tmain(int argc, _TCHAR* argv[])
{
int testNumbers[4] = {8,14,1,27};
int testSorted[4];
sortArrayAscending(testNumbers,testSorted);
for (int i = 0; i < 4; i++) {
cout << testSorted[i] << endl;
}
system("pause");
return 0;
}
ご協力いただきありがとうございます。ベクターを検索してみましょう。
PS@Luchian Grigoreのソリューションは、物事を行うためのベストプラクティスの方法である可能性が最も高いと思いますが、それは特に私の質問ではありませんでした