2014-11-01 123 views
-1

你好,我有一個錯誤問題「沒有匹配的函數調用」BubbleSort「我創建了一個沒有類的BubbleSort程序,我的BubbleSort中的參數匹配函數調用在主,所以我不知道爲什麼我收到此錯誤的任何想法呼叫「BubbleSort」沒有匹配的函數

我主要如下所示:?

int main() 
{ 
int size = 5000; 

int* array = CreateAnArray(size); 

BubbleSort(array, size, comparison, itemAssignment); ///This is where the error is 
} 

和冒泡功能看起來像這樣:

int BubbleSort(int* array, int size, int comparison, int itemAssignment) 
{ 
bool done = false; 
while (!done) { 
    done = true; 
    for (int i = 0; i < size - 1; i++) { 
     if (array[i] > array[i + 1]) { 
      done = false; 
      comparison++; 
      Swap(array, i, i + 1); 
     } 
     else 
     { 
      itemAssignment++; 
     } 
    } 
} 
cout << "Number of comparisons: " << comparison << "Item Assignments: " << endl; 
return comparison; 
return itemAssignment; 
} 

*************我的整個代碼***********

#include <iostream> 
#include <cstdlib> 
#include <stdio.h> 
#include <stdlib.h> 
#include <time.h> 

using namespace std; 

int* CreateAnArray(int size) { 
    srand((unsigned)time(0)); 
    int* array = new int[size]; 
    for (int i = 0; i <size; i++) { 
     int randomnum = 1 + rand() % 100; 
     array[i] = randomnum; 
    } 
    return array; 
} 

void Swap(int* array, int a, int b) 
{ 
    int tmp = array[a]; 
    array[a] = array[b]; 
    array[b] = tmp; 
} 

int BubbleSort(int* array, int size, int comparison, int itemAssignment) 
{ 
    bool done = false; 
    while (!done) { 
     done = true; 
     for (int i = 0; i < size - 1; i++) { 
      if (array[i] > array[i + 1]) { 
       done = false; 
       comparison++; 

       Swap(array, i, i + 1); 
      } 
      else 
      { 
       itemAssignment++; 
      } 
     } 
    } 
    cout << "Number of comparisons: " << comparison << "Item Assignments: " << endl; 
    return comparison; 
    return itemAssignment; 
    } 

int get_comparison(int comparison){ 

    return comparison; 
} 

int get_itemAssignment(int itemAssignment){ 
    return itemAssignment; 
} 


int main() 
{ 
    int size = 5000; 
    int* array = CreateAnArray(size); 

    BubbleSort(array, size, comparison, itemAssignment);  
} 
+2

什麼是'get_comparison'和'get_itemAssignment'?如果它們是函數而不是'int',那麼這就是你的問題。如果它們不是「int」類型,那是一個問題。我用幾種不同的方式說明這一點,因爲你的參數不匹配,你已經忽略了編譯錯誤。重申一下,你的參數是一致的,但你的論點卻不一致。 – 2014-11-01 23:03:55

+0

BubbleSort是否在同一個文件中?不同的文件?你可以發佈你的整個代碼嗎? – Barry 2014-11-01 23:04:51

+0

@CaptainObvlious我創建了get_comparison和get_itemAssignment來獲取計數器比較和itemAssignment的值,因爲void函數不能返回值。我應該嘗試不同的東西嗎?我是C++的新手 – user3691405 2014-11-01 23:10:16

回答

0

一個在

BubbleSort(array, size, comparison, itemAssignment); 

比較未定義。

+0

謝謝!這有幫助。我只需要爲計數器添加int比較= 0和int itemAssignment = 0! – user3691405 2014-11-01 23:39:28

+0

如果你只是int BubbleSort(int *數組,int大小,int比較= 0,int itemAssignment = 0),那麼你所做的就是爲這些參數設置默認值。從現在開始,你可以用兩個參數調用BubbleSort:BubbleSort(數組,大小),省略參數的值爲0 – 4pie0 2014-11-01 23:44:50

相關問題