2011-08-13 55 views
0

嗨,我一直在寫(和學習)C++,並在程序中正確寫入所有代碼(或者我認爲)。我得到這個錯誤:C++程序報告符號找不到錯誤

"rands(int)", referenced from: 
     _main in ccgc4zY9.o 
ld: symbol(s) not found 
collect2: ld returned 1 exit status 

我的代碼是這樣的:

#include<iostream> 
#include<stdlib.h> 
#include<time.h> 
#include<cmath> 

using namespace std; 

int rands(int n); 
int hits[10]; 

int main() { 
    int n; 
    int i; 
    int r; 
    srand(time(NULL)); 

    cout<<"enter a number of trials to run"<<endl; 
    cin>>n; 

    for (i=1; i<=n; i++) { 
     r=rands(10); 
     hits[r]++; 
    } 

    for (i=0; i<10; i++) { 
     cout<<i<<":"<<hits[i]<<"<Accuracy"; 
     cout<<static_cast<double>(hits[i])/(n/10)<<endl; 
    } 

    return 0; 
} 

int randns(int n) { 
    return rand()%n; 
} 

任何幫助表示讚賞!

+0

檢查您的函數名稱拼寫;) – Hyperbole

+0

它意味着它說什麼。您尚未鏈接任何定義符號「rands」的文件。你的意思是'randns'? – geoffspear

+0

如果代碼正確縮進,您的代碼將更易於閱讀,並且更容易複製和粘貼,而不需要行號。 (如果錯誤消息引用行號,請添加一個'// This This is line 42' comment。) –

回答

7

您已經定義了一個名爲randns()的函數,但調用了一個名爲rands()的函數。鏈接器告訴你rands()未定義,看起來是正確的。