エラー "Pindex"はこのスコープでは宣言されていません。 (15行目)
また、クイックソートプログラムでエラーが発生しました
int a[]
と
int a*
と機能の配列を宣言し、ソートアルゴリズムのexplainatioのためのいくつかのリソースを提案するとの違いは何ですか。
#include<iostream>
using namespace std;
int Partition(int a[], int start, int last);
void QuickSort(int a[], int start, int last)
{
/*if(start>=last)
{
return ;
}*/
{ if(start<last)
int Pindex=Partition(a, start, last);
QuickSort(a, start, Pindex-1);
QuickSort(a,Pindex+1, last);
}
}
int Partition(int a[] ,int start, int last)
{
int temp;
int Pindex=start;
int pivot=a[last];
for (int i=0;i<last;i++)
{
if(a[i]<=pivot)
{
temp=a[i];
a[i]=a[Pindex];
a[Pindex]=temp;
Pindex++;
}
}
temp=a[Pindex];
a[Pindex]=a[last];
a[last]=temp;
return Pindex;
}
int main()
{
int n;
cout<<"\n Enter the no of elements ";
cin>>n;
cout<<"\n Enter the elements ";
int A[n];
for (int i=0;i<n;i++)
{
cin>>A[i];
}
QuickSort(A,0,n-1);
cout<<"\n Sorted Array ";
for (int i=0;i<n;i++)
{
cout<<A[i];
}
return 0;
}
'Pindex'は' if'ステートメントの範囲内でのみ宣言されます。これは、中括弧を追加すると明確になります: 'if(start
関数のパラメータとして、' int a [] 'と' int * a'には全く違いはありません。関数を一方向に宣言して、それを逆に定義することさえできます。 –
a *はエラーとなります。 *はポインタです。 a [10]は配列です。 – stark