看板 C_and_CPP 關於我們 聯絡資訊
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 遇到的問題: (題意請描述清楚) [Linker error] undefined reference to `select(int, int, int)' ld returned 1 exit status 希望得到的正確結果: 發牌 程式跑出來的錯誤結果: 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) Dex-c++ 有問題的code: (請善用置底文標色功能) #include<stdio.h> #include<stdlib.h> #include<time.h> int main() { srand((unsigned)time(NULL)); int i1,i2,com,player,poker[52],number(int); void select(int,int,int),color(int); for (int k=0;k<=51;k++) poker[k]=k; select(com,player,poker[52]); printf("%d %d",com,player); system("pause"); } void select(int com,int player,int poker[52]) // 發牌的功能 { int i1,i2; i1=rand()%52; if (poker[i1]>0) com=poker[i1]; i2=rand()%52; while (i2 == i1) i2=rand()%52; if (poker[i2]>0) player=poker[i2]; poker[i1]=-1; poker[i2]=-1; } int number(int i) //決定牌的數字的function 大於十當十 { int o; float l; l=i/4; o=(int)l; switch (o) { case 0: printf("one of"); return 1; break; case 1: printf("two of"); return 2; break; case 2: printf("three of"); return 3; break; case 3: printf("four of"); return 4; break; case 4: printf("five of"); return 5; break; case 5: printf("six of"); return 6; break; case 6: printf("sevin of"); return 7; break; case 7: printf("eight of"); return 8; break; case 8: printf("nine of"); return 9; break; case 9: printf("ten of"); return 10; break; case 10: printf("jack of"); return 10; break; case 11: printf("queen of"); return 10; break; case 12: printf("king of"); return 10; break; } } void color(int i) //決定花色的function { int l; l=i%4; switch (l) { case 0: printf(" clubs\n"); break; case 1: printf(" diamond\n"); break; case 2: printf(" hearts\n"); break; case 3: printf(" spades\n"); break; } } 小弟我寫完三個function之後 想先試看看能不能發牌(21點) 結果出現這個錯誤 讓我一頭霧水 沒辦法繼續下去 懇請各位高手解惑@@ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.132.15.156
gh8811211:副程式拉到main前面,或是在前面先宣告 11/25 17:43
james732:select(com,player,poker[52]); 這個 [52] 好像是多餘的 11/25 17:44
lO:一樓我照你說的 都沒有用耶~"~ 錯誤碼還是一樣 11/25 18:17
netsphere:一樓說的是正確的阿 11/25 18:20
lO:丟到main前面錯誤碼一樣 丟到main裡面他說這樣不是allowed 11/25 18:40
lO:天阿 感覺只是個小錯誤 真是殺進度 (我是自學) 11/25 18:40
james732:那如果把 main 裡面呼叫 select 的 [52] 去掉? 11/25 18:40
lO:照樓上做的話 錯誤碼會是說將int*轉成int 11/25 18:44
VictorTom:select函數的參數那邊, int poker[52] 改成~~ 11/25 18:47
VictorTom:int poker[] 或者 int *poker, 並注意1F說的事情.... 11/25 18:48
VictorTom:喵的~~有一個宣告有一個定義, 乾脆回文說好了....Orz 11/25 18:49