错误:控件在C ++中到达非void函数的结尾,用于选择排序函数

时间:2014-03-13 04:46:01

标签: c++ function selection-sort

对于这个赋值,我必须在另一个文件中编写一个选择排序函数,该文件按升序对数组进行排序,以便在我的驱动程序中使用。我已经在我的错误中搜索了这个问题,但我仍然没有找到任何我能看到的可以帮助我的东西。有人可以帮帮我吗?

这是我到目前为止所拥有的。

#include <iostream>
using namespace std;


void *selectionsort(int values[], int size){


    for(int i=0; i<size-1; i++){
        for(int j=0; j<size; j++){
            if(values[i] < values[j]){
                int temp = values[i];
                values[i] = values[j];
                values[j] = temp;


            }

        }

    }
}

如果需要,我的司机在这里。

#include <stdlib.h>
#include <iostream>
#include "selection.cpp"

using namespace std;

#define ArraySize 10 //size of the array
#define  Seed  1 //seed used to generate random number

int values[ArraySize];


int main(){


    int i;

    //seed random number generator
    srand(Seed);

    //Fill array with random intergers
    for(i=0;i<ArraySize;i++)
        values[i] = rand();

    cout << "\n Array before sort" << endl;

    for(i=0;i<ArraySize; i++)
        cout << &values[]<< "\n";

    //int* array_p = values;

    cout << "\n Array after selection sort." << endl;

    //Function call for selection sort in ascending order.
    void *selectionsort(int values[], int size);

    for (i=0;i<ArraySize; i++)
        cout << &values[] << "\n";


    //system("pause");

}

2 个答案:

答案 0 :(得分:2)

您的功能无效将其更改为

void selectionsort(int values[], int size){

额外:如果你这样定义,你的函数会返回一个void指针。而void指针是一个可以指向......任何东西的指针。

当然,请参阅@ brokenfoot的答案,了解如何调用函数。

答案 1 :(得分:0)

  1. 由于您已将main()定义为int main(),因此它返回一个int。因此,在main中的结束括号之前,添加return 0;
  2. 因为您没有从selectionsort()函数返回,所以请将其设为无效:
    void selectionsort(int values[], int size)
  3. 当您在main()中调用此函数时,请将其称为:
    selectionsort(values,size);