我必須寫一個交換功能爲我的冒泡排序 這就是我已經有了:交換實現函數c
void swap(int arr[], int size, int i, int j)
{
int temp = *(arr+i);
*(arr + i) = *(arr+j);
*(arr+j) = temp;
}
當我試圖運行我得到了以下錯誤
: 警告C4013:'互換'未定義;假設extern返回int 錯誤C2371:'swap':重新定義;不同的基本類型\
當我改變函數爲int類型,它確實工作, 任何想法爲什麼?
謝謝大家!
編輯:我很抱歉,只有在我把這個函數轉換爲一個int並且我不需要一個原型,因爲它在主函數之前我纔會出現'return 0'。
這裏是整個代碼:
//BubbleSort
void bubbleSort(int arr[], int size)
{
int i,j;
for(i=0; i < size; i++)
{
for(j=i+1; j < size; j++)
{
if(*(arr+i) > *(arr+j))
{
/*temp = *(arr+i);
*(arr + i) = *(arr + j);
*(arr + j) = temp;*/
swap(arr,i,j);
}
}
}
}
void swap(int arr[], int i, int j)
{
int temp = *(arr+i);
*(arr + i) = *(arr+j);
*(arr+j) = temp;
}
void main()
{
int i, arr[] = {8,0,6,-22,9};
bubbleSort(arr, sizeof(arr)/sizeof(int));
for(i=0; i < sizeof(arr)/sizeof(int); i++)
{
printf("%d, ",*(arr+i));
}
printf("\n");
}
您正在返回0,而該方法具有的空隙的類型。只有當類型不是無效時才返回值。 – trumank 2012-03-30 14:19:08
+1來反擊無意義的,無法解釋的downvote。 – ArjunShankar 2012-03-30 14:20:14
不,如果函數在使用之前已定義,則不需要使用獨立的原型。定義還提供了一個原型。 – pmg 2012-03-30 14:30:34