これが問題です。
少なくとも 20 の整数の 2 つの同一の配列を使用するプログラムを作成します。バブル ソート アルゴリズムを使用して配列の 1 つを昇順に並べ替える関数を呼び出す必要があります。この関数は、行った交換の回数を記録する必要があります。次に、プログラムは、選択並べ替えアルゴリズムを使用して他の配列を並べ替える関数を呼び出す必要があります。また、行った交換の回数も記録する必要があります。これらの値を画面に表示します。ここに私の問題があります。入力した 20 個の乱数をvoidbubbleSort
および voidして並べ替えることができますが、各並べ替え方法で交換回数のカウンターを追加する方法を理解するのに苦労しています。selectionSort
また、指示には と を使用するように書かれていint bubbleSort(long [], int);
ますint selectionSort(long [], int);
。void の代わりに int を使用する理由がわかりません。おそらく私は両方を使用していますか?
とにかく、どんな助けでも大歓迎です。ありがとうございました。
編集:これが私がこれまでに持っているものです。
//Sorting Benchmarks
#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
// Function Prototypes
void sortArray (int [], int);
void showArray (const int [], int);
int bubbleSort(long [], int);
int selectionSort(long [], int);
int main()
{
// Define an array with unsorted value
const int SIZE = 20;
int values[SIZE]{20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1);
// Display the values
cout << "The unsorted values are:\n";
showArray(values, SIZE);
//Sort the values.
sortArray(values, SIZE);
//Display them again.
cout << "The sorted values are:\n";
showArray(values, SIZE);
return 0;
}
void sortArray(int array[], int size)
{
bool swap;
int temp;
do
{
swap = false;
for (int count = 0; count < (size - 1); count++)
{
if (array[count] > array[count + 1])
{
temp = array[count];
array[count] = array[count + 1];
array[count + 1] = temp;
swap = true;
count++
dispCount()
}
}
} while (swap);
}
void dispCount()
{
cout << "The current number of exchanges are " << count << endl;
}
void showArray(const int array[], int size)
{
for (int count = 0; count < size; count++)
cout << array[count] << " ";
cout << endl;
system("PAUSE");
}
これにより、100 万のエラーが発生します。最大のエラーは int main にあり、「int」の前に期待される一次式と期待される「;」と書かれています。「int」の前。私がチェックしたところ、すべての ; が属する場所にあると感じました。