c++程序调试问题:error C2664: 'HBPX' : cannot convert parameter 3 from 'class。。。
#include<iostream>usingnamespacestd;intHBPX(inta[],intlength,intleft[],intright[]){in...
#include<iostream>
using namespace std;
int HBPX(int a[],int length,int left[],int right[])
{
int leftlength=length/2;
int rightlength=length-length/2;
for(int i=0;i<leftlength;i++)
{
left[i]=a[i];
}
for(int j=0;j<rightlength;j++)
{
right[j]=a[leftlength+j];
}
int p=0;
int b=0;
for(int k=0;k<length;k++)
{
if(p<=leftlength && b<=rightlength)
{
if(left[p]<right[b])
{
a[k]=left[p];
p++;
}else{
a[k]=left[b];
b++;
}
}
}
return a[length];
}
void main()
{
int length;
cout<<"请输入要排序的个数:";
cin>>length;
int *a=new int[length];
for(int i=0;i<length;i++)
{
cout<<"请输入第"<<i+1<<"个数: ";
cin>>a[i];
}
a[length]=HBPX(a,length,left,right);
cout<<"合并排序之后的顺序:"<<endl;
for(int j=0;j<length;j++)
{
cout<<a[j]<<" ";
}
delete[]a;
}
出现的问题是:
C:\Users\KeaneT\Desktop\算法\hebing.cpp(48) : error C2664: 'HBPX' : cannot convert parameter 3 from 'class std::ios_base &(__cdecl *)(class std::ios_base &)' to 'int []'
There is no context in which this conversion is possible 展开
using namespace std;
int HBPX(int a[],int length,int left[],int right[])
{
int leftlength=length/2;
int rightlength=length-length/2;
for(int i=0;i<leftlength;i++)
{
left[i]=a[i];
}
for(int j=0;j<rightlength;j++)
{
right[j]=a[leftlength+j];
}
int p=0;
int b=0;
for(int k=0;k<length;k++)
{
if(p<=leftlength && b<=rightlength)
{
if(left[p]<right[b])
{
a[k]=left[p];
p++;
}else{
a[k]=left[b];
b++;
}
}
}
return a[length];
}
void main()
{
int length;
cout<<"请输入要排序的个数:";
cin>>length;
int *a=new int[length];
for(int i=0;i<length;i++)
{
cout<<"请输入第"<<i+1<<"个数: ";
cin>>a[i];
}
a[length]=HBPX(a,length,left,right);
cout<<"合并排序之后的顺序:"<<endl;
for(int j=0;j<length;j++)
{
cout<<a[j]<<" ";
}
delete[]a;
}
出现的问题是:
C:\Users\KeaneT\Desktop\算法\hebing.cpp(48) : error C2664: 'HBPX' : cannot convert parameter 3 from 'class std::ios_base &(__cdecl *)(class std::ios_base &)' to 'int []'
There is no context in which this conversion is possible 展开
1个回答
2015-04-06
展开全部
a[length]=HBPX(a,length,left,right);//在你并没有定义left和right。
int HBPX(int a[],int length,int left[],int right[])
你可以把函数定义成这样
int HBPX(int a[],int length,int left,int right),在main函数中这样调用HBPX(a,length,0,length);当然HBPX函数的实现也要稍稍改一下。
int HBPX(int a[],int length,int left[],int right[])
你可以把函数定义成这样
int HBPX(int a[],int length,int left,int right),在main函数中这样调用HBPX(a,length,0,length);当然HBPX函数的实现也要稍稍改一下。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询