2013-04-17 33 views
-6

我應該寫一個函數,它需要整數參數3並重新排列它們。 例如,如果a=370,b=2105,c=40那麼該函數應該導致a = 2105,b=370,c=40排序3個數字C++

我的代碼是給我

errorLNK201`解析外部符號和致命錯誤LNK1120:1無法解析的外部

#include <iostream> 
using namespace std; 
int a, b, c; 
void sort_three (int & a, int & b, int & c); 
void main() {} 
void sort (int & a, int & b, int & c) {} 

謝謝! 我有點意識到和sort_three不匹配,即解決它,謝謝大家

+5

這是一些奇怪的大括號風格。 –

+3

當然錯誤信息不止這些。特別是,它給出了缺失符號的名稱,這就是你如何知道缺失的符號。 –

回答

9

名稱不匹配中:

void sort_three (int & a, int & b, int & c); 
void sort (int & a, int & b, int & c) { 

前者顯然意味着是一個原型後,但名稱錯誤。

排序算法也不是很正確(對於初學者,它在r[i+1]中有未定義的行爲)。

2

重命名時,連接器無法找到足夠的信息來調用函數與函數定義鏈接

void sort (int & a, int & b, int & c) { 

void sort_three (int & a, int & b, int & c) { 

鏈接錯誤總是發生。

原型中的函數簽名應該與定義中的函數簽名匹配。並且也應該用相同的簽名來調用。

1

不應該你的「無效排序」是「無效sort_three」? (雖然有助於看到精確的鏈接錯誤)

1

您聲明sort_three void sort_three (int & a, int & b, int & c);但定義排序void sort (int & a, int & b, int & c) {因此在您的程序中沒有sort_three。