选择排序程序出错了!!
#include<iostream>
#include<iomanip>
using namespace std;
void swap(int* const,int* const);
void selectionSort(int* const,const int);
int main()
{
const int arraySize = 10;
int a[arraySize] = {2,4,5,6,29,34,56,43,67,44};
cout<<"Data items in original order\n";
for(int i=0;i<arraySize;i++)
{
cout<<setw(4)<<a[i];
selectionSort(a,arraySize);
cout<<"\nData items in ascending order\n";
for(int j = 0;j < arraySize;j++)
cout<<setw(4)<<a[j];
cout<<endl;
}
void selectionSort(int * const array,const int size)
{
int smallest;
for(int i=0;i<size-1;i++)
{
smallest = i;
for(int index=i+1;index<size;index++)
{
if(array[index]<array[smallest])
smallest=index;
swap(&array[ i ],&array[ smallest ]);
}
}
void swap(int* const element1ptr,int* const element2ptr)
{
int hold = *element1ptr;
*element1ptr = *element2ptr;
*element2ptr = hold;
}
}
}
const.cpp(23) : error C2601: 'selectionSort' : local function definitions are illegal
const.cpp(43) : warning C4508: 'main' : function should return a value; 'void' return type assumed
求助,如何修改!!
[解决办法]
楼主函数的大括号打错了,帮你改了。。
#include<iostream>#include<iomanip>using namespace std;void swap(int* const,int* const);void selectionSort(int* const,const int);int main() { const int arraySize = 10;int a[arraySize] = {2,4,5,6,29,34,56,43,67,44};cout<<"Data items in original order\n";for(int i=0;i<arraySize;i++){cout<<setw(4)<<a[i];selectionSort(a,arraySize);cout<<"\nData items in ascending order\n";for(int j = 0;j < arraySize;j++)cout<<setw(4)<<a[j];cout<<endl;}return 0; //添加return 0;}void selectionSort(int * const array,const int size){ int smallest; for(int i=0;i<size-1;i++) { smallest = i;for(int index=i+1;index<size;index++){if(array[index]<array[smallest])smallest=index;swap(&array[ i ],&array[ smallest ]);} }} void swap(int* const element1ptr,int* const element2ptr) { int hold = *element1ptr;*element1ptr = *element2ptr;*element2ptr = hold; }