[問題] 小弟是初學者 看不太懂錯誤 爬文也不太清楚

看板C_and_CPP作者 (壓力大)時間16年前 (2009/11/25 17:40), 編輯推噓2(209)
留言11則, 5人參與, 最新討論串1/2 (看更多)
( *[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

11/25 17:43, , 1F
副程式拉到main前面,或是在前面先宣告
11/25 17:43, 1F

11/25 17:44, , 2F
select(com,player,poker[52]); 這個 [52] 好像是多餘的
11/25 17:44, 2F

11/25 18:17, , 3F
一樓我照你說的 都沒有用耶~"~ 錯誤碼還是一樣
11/25 18:17, 3F

11/25 18:20, , 4F
一樓說的是正確的阿
11/25 18:20, 4F

11/25 18:40, , 5F
丟到main前面錯誤碼一樣 丟到main裡面他說這樣不是allowed
11/25 18:40, 5F

11/25 18:40, , 6F
天阿 感覺只是個小錯誤 真是殺進度 (我是自學)
11/25 18:40, 6F

11/25 18:40, , 7F
那如果把 main 裡面呼叫 select 的 [52] 去掉?
11/25 18:40, 7F

11/25 18:44, , 8F
照樓上做的話 錯誤碼會是說將int*轉成int
11/25 18:44, 8F

11/25 18:47, , 9F
select函數的參數那邊, int poker[52] 改成~~
11/25 18:47, 9F

11/25 18:48, , 10F
int poker[] 或者 int *poker, 並注意1F說的事情....
11/25 18:48, 10F

11/25 18:49, , 11F
喵的~~有一個宣告有一個定義, 乾脆回文說好了....Orz
11/25 18:49, 11F
文章代碼(AID): #1B3FjvJp (C_and_CPP)
文章代碼(AID): #1B3FjvJp (C_and_CPP)