This is example code straight out of the book, and I have no idea what the problem with it is.
fig07_24.c: In function ‘main’:
fig07_24.c:21: warning: passing argument 1 of ‘deal’ from incompatible pointer type
fig07_24.c: At top level:
fig07_24.c:44: error: conflicting types for ‘deal’
fig07_24.c:6: error: previous declaration of ‘deal’ was here
Does anyone have a clue please?
Code:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void shuffle( int[][ 13 ] );
void deal( const int[][ 13 ], const char *[], const char *[] );
int main()
{
const char *suit[ 4 ] =
{ "Hearts", "Diamonds", "Clubs", "Spades" };
const char *face[ 13 ] =
{ "Ace", "Deuce", "Three", "Four",
"Five", "Six", "Seven", "Eight",
"Nine", "Ten", "Jack", "Queen", "King" };
int deck[ 4 ][ 13 ] = { 0 };
srand ( time( 0 ) );
shuffle( deck );
deal( deck, face, suit );
return 0;
}
void shuffle( int wDeck[][ 13 ] )
{
int row, column, card;
for (card = 1; card <= 52; card++) {
do {
row = rand() % 4;
column = rand() % 13;
} while( wDeck[ row ][ column ] != 0 );
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' );
}