-1

さて、以前はパラメータが一致しないこのコードでエラーが発生しましたが、現在はソート関数とスワップ関数の書き直しに問題があります。どの変数名を使用するか混乱しています。私は考えられるあらゆる方法を試しましたが、エラーが発生し続けます。私は割り当てられた両方の本ですべての読書をしました、そしてこの割り当ては日曜日に予定されています、しかし私は先に働きそしてそれを終わらせようとしています。ですから、誰かが私のソート関数とスワップ関数を書き直すための正しい方向に私を向けることができれば、私は非常に親切です。私が混乱しているコードの正確な行は次のとおりです。

 void swap(salesTran A[], int i, int j)
    {
    int temp;
    temp =A[i];
    A[j] = A[j];
    A[j] = temp;
    return;
    }
    void sort(salesTran A[], int size)
    {
        for(int p=1; p<size; p++)
        {
            for(int c=0; c<size-p; c++)
            {
                if(A[c]>A[c+1]) A (A,c,c+1);
            }
        }
        return;
    }

私のプログラム全体:

#include <iostream>
#include <string>
#include <fstream>
using namespace std;

struct salesTran {
string name;
double quantity,price;
};

void swap(salesTran A[], int i, int j);
void sort(salesTran A[], int size);

ostream& operator << (ostream& os, salesTran A)
{os << A.name << "\t" << A.quantity << "\t" << A.price;
return os;}
istream& operator >> (istream& is, salesTran& A)
{is >> A.name >> A.quantity >> A.price;
return is;}

int main()
{
   salesTran data[250];

ifstream fin;
fin.open("sales.txt");
ofstream fout;
fout.open("results.txt");

int index = 0;
fin >> data[index];
while(!fin.eof())
{
index++;
fin >> data[index];
}

sort(data, index);

for(int j=0; j < index; j++)
{ 
cout << data[j] << endl;
}

return 0;
}

void swap(salesTran A[], int i, int j)
{
int temp;
temp =A[i];
A[j] = A[j];
A[j] = temp;
return;
}
void sort(salesTran A[], int size)
{
    for(int p=1; p<size; p++)
    {
        for(int c=0; c<size-p; c++)
        {
            if(A[c]>A[c+1]) A (A,c,c+1);
        }
    }
    return;
}
4

2 に答える 2

1

スワップ関数では、はオブジェクトではなく、オブジェクトtemp型のオブジェクトである必要があります。salesTranint

于 2013-03-05T02:44:37.667 に答える
1
A (A,c,c+1);

Aどうやら必要な関数として呼び出そうとしていますswap

また、必要なことを実行する関数がありますが、より効率的であることに注意してstd::swapくださいstd::sort

于 2013-03-05T02:47:59.477 に答える