2

数値の入力ファイル (integer.txt) を受け入れるプログラムを作成する必要があります。このファイルは、1 行に 1 つの数値を並べ替えてベクトルにし、選択並べ替えアルゴリズムを使用して数値を降順で並べ替え、それらを出力ファイル (sorted.txt)。cout でテストした後、非常に不適切な出力が得られるため、 selectionSort() 関数に何か問題があり、ループが正しい値を取得しない原因になっていると確信しています。私はそれが初心者プログラマーのばかだと確信しています。

vector<string> getNumbers()
{
vector<string> numberList;
ifstream inputFile ("integer.txt");
string pushToVector;
while (inputFile >> pushToVector)
    {
    numberList.push_back(pushToVector);
    }
return numberList;
}



vector<string> selectionSort()
{
vector<string> showNumbers = getNumbers();
int vectorMax = showNumbers.size();
int vectorRange = (showNumbers.size() - 1);
int i, j, iMin;
for (j = 0; j < vectorMax; j++)
    {
    iMin = j;
    for( i = j; i < vectorMax; i++)
        {
        if(showNumbers[i] < showNumbers[iMin])
            {
            iMin = i;
            }
        }
    if (iMin != j)
        {
        showNumbers[j] = showNumbers [iMin];
        }
    }
return showNumbers;
}

void vectorToFile()
{
vector<string> sortedVector = selectionSort();

int vectorSize = sortedVector.size();
ofstream writeTo;
writeTo.open("sorted.txt");
int i = 0;
while (writeTo.is_open())
    {
    while (i < vectorSize)
        {
        writeTo << sortedVector[i] << endl;
        i += 1;
        }
    writeTo.close();
    }
return;
}

int main()
    {
    vectorToFile();
    }
4

2 に答える 2

0

vectorRange が定義されていますが、使用されていません。

于 2013-10-23T00:59:59.833 に答える