C++编写函数void sort(int *x,int n),利用指针采用选择法对随机数组中的10个数做从大到小的排序

int main()
{
int array[10] = {3,2,5,8,0,4,9,7,1,6},*p;
p = array;
cout << "逆序前数组:" << endl;
printArray(p, 10);
sort(p, 10);
cout << "逆序后数组;" << endl;
printArray(p, 10);
return 0;
}
这是主函数,求大神
最新回答
真相是假

2024-06-06 02:02:45

从大到小的简单选择排序,希望可以帮助你:
void Sort(int * array, int length) /*对记录数组array做简单选择排序,length为待排序记录的个数*/
{
int temp;
for ( i=0 ; i< length-1 ; i++) //n-1趟排序
{
int index=i; //假设index小标的元素最大
for ( j=i+1 ; j < length ; j++)  //查找更大记录的位置
if (*(array+j)>*(array+index) )
index=j;
if ( index!=i)  //若无序区第一个元素不是无序区中最大元素,则进行交换
{ temp= *(array+i); *(array+i)=*(array+index); *(array+index)=temp; } //利用temp作为临时空间,两个值交换的桥梁
}
}
追问
E:\C++\MyProjects\1\1.cpp(6) : error C2065: 'i' : undeclared identifier
E:\C++\MyProjects\1\1.cpp(8) : error C2018: unknown character '0xa3'

…………执行 cl.exe 时出错.
出现了这些,我把主函数加到后面去了
追答
int temp;改为int temp,i;
追问

其实它有好长一段,麻烦了,谢谢

追答
void Sort(int  array[], int length) /*对记录数组array做简单选择排序,length为待排序记录的个数*/
{
int temp,i,j;
for ( i=0 ; i*(array+index) )
index=j;
if ( index!=i)  //若无序区第一个元素不是无序区中最大元素,则进行交换
{ temp= *(array+i); *(array+i)=*(array+index); *(array+index)=temp; } //利用temp作为临时空间,两个值交换的桥梁
}
}
好久没写C了.......
追问
虽然还有点问题,不过没事,先把作业交了再说~嘿嘿,麻烦你了