你好,我有一個錯誤問題「沒有匹配的函數調用」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);
}
什麼是'get_comparison'和'get_itemAssignment'?如果它們是函數而不是'int',那麼這就是你的問題。如果它們不是「int」類型,那是一個問題。我用幾種不同的方式說明這一點,因爲你的參數不匹配,你已經忽略了編譯錯誤。重申一下,你的參數是一致的,但你的論點卻不一致。 – 2014-11-01 23:03:55
BubbleSort是否在同一個文件中?不同的文件?你可以發佈你的整個代碼嗎? – Barry 2014-11-01 23:04:51
@CaptainObvlious我創建了get_comparison和get_itemAssignment來獲取計數器比較和itemAssignment的值,因爲void函數不能返回值。我應該嘗試不同的東西嗎?我是C++的新手 – user3691405 2014-11-01 23:10:16