作者lO (壓力大)
看板C_and_CPP
標題[問題] 小弟是初學者 看不太懂錯誤 爬文也不太清楚
時間Wed Nov 25 17:40:06 2009
( *[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