读书人

warning : passing arg 一 of amp;#x27;d

发布时间: 2013-02-04 10:50:21 作者: rapoo

warning : passing arg 1 of 'deal' from incompatible pointer type



可是这是书上的范例应该没问题啊。

求解释。 c gcc
[解决办法]
char *suit[4] = {"Hearts","Diamonds","Clubs","Spades"};
char * face[13] = {"Ace","Decue","Three","Four","Five","Six","Seven",
"Eight","Nine","Ten","Jack","Queen","King"};
改成const char *


或者deal中形参改成char * []
[解决办法]
二维数组的初始化

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

void shuffle (int [] [13]);
void deal (const int [] [13], const char * [], const char * []);

int main()
{
//1
char const *suit[4] = {"Hearts","Diamonds","Clubs","Spades"};
//2
char const * face[13] = {"Ace","Decue","Three","Four","Five","Six","Seven",
"Eight","Nine","Ten","Jack","Queen","King"};
//3
int deck[4][13] = {{0}};

srand (time (NULL));

shuffle (deck);
deal (deck, face, suit);

return 0;
}

void shuffle (int wDeck[][13])
{
int card, row, column;

for (card = 1; card < 52; card ++){
row = rand()%4;
column = rand()%13;

while (wDeck[row][column] != 0){
row =rand ()% 4;
column =rand ()% 13;
}

wDeck[row][column] = card;
}
}

void deal (const int wDeck[][13], const char * wFace[], const char * wSuit[])
{
int card, row, column;

for (card = 1; card <= 52; card++)
for(row = 0; row <= 3; row++)
for(column = 0; column <= 12; column++)
if(wDeck [row][column] == card)
printf("%5s of %-8s%c",wFace[column], wSuit[row],
card % 2 == 0 ?'\n':'\t');
}

读书人网 >C语言

热点推荐