ここはクイックソート用のコードです。私は初心者ですので親切にお手伝いください。in C++期待の一次式の前に ']'
#include<iostream>
using namespace std;
class quick
{
private:
int n,left,right,i,j;
float a[55];
public:
void getdata();
void sort(float[],int,int);
void putdata();
};
void quick::getdata()
{
cout<<"Enter how many elements you want to enter:";
cin>>n;
for(int k=0;k<n;k++)
{
cout<<"Enter percentage of students:"<<k+1<<":";
cin>>a[k];
}
left=0;
right=n-1;
}
void quick::putdata()
{
for(int k=0;k<5;k++)
{
cout<<"\nSorted marks are:"<<a[k]<<endl;
}
}
void quick::sort(float a[],int left,int right)
{
if(left<right)
{
int i=left;
int j=right+1;
float pivot=a[left];
do{
do{
i++;
}while((a[i]<pivot)&& left<right);
do{
j--;
}while(a[j]>pivot);
if(i<j)
swap(a[i],a[j]);
}while(i<j);
a[left]=a[j];
a[j]=pivot;
sort(a,left,j-1);
sort(a,j+1,right);
}
}
int main()
{
quick obj;
obj.getdata();
obj.sort(a[],left,right);
obj.putdata();
return (0);
}
それは私int main()
機能でエラー与えている:このスコープ内で宣言されていない
- を。
- ']'の前に一次式が必要です。
コードをインデントしてください。 _sigh_。 'obj.sort(a []、left、right);' 'a'、' left'と 'right'はここにいるはずですか? –
あなたのメソッドの 'sort'ローカルパラメータはstructのメンバを隠します。あなたのクラスの 'a'、' left'と 'right'を使いたい場合は' sort'( 'void sort()')の引数を使わないでください – Garf365
'a'、' left'、 'right 'クイック'のメンバーです。関数へのパラメータであってはなりません。 (「ソート」をどこかからコピーしてクラスに入れて、それを「オブジェクト指向」にする気がします。ここでクラスを使う理由はありません。) – molbdnilo