PDA

Visualizza la versione completa : Problema file sorgente in C


ARMANDO888
26-01-2014, 12:03
Salve ragazzi, questo è un programma che dovrebbe mischiare 52 carte, ma C::B segnala un warning alla riga 19, ma non capisco il problema, potete dare un' ochiata?



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


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


main()
{
char *suit[4] = {"Hearts", "Diamonds", "Clubs", "Spades"};
char *face[13] = {"Ace","Deuce", "Three", "Four", "Five", "Six", "Seven",
"Eight", "Nine", "Ten", "Jack", "Queen", "King"};
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()%3;
column= rand ()%13;}


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


void deal ( const int wDeck[][13], const char *wFace[], const char *wSuite[])
{
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], wSuite[row],
card % 2 == 0 ? '\n' : '\t');
}




}

oregon
26-01-2014, 12:08
Perché non indichi chiaramente la linea e il warning?

ARMANDO888
26-01-2014, 12:10
Intendi questo?


|19|warning: passing argument 1 of 'deal' from incompatible pointer type [enabled by default]|

oregon
26-01-2014, 12:13
Sì ... e non ci fare contare le linee ... dicci la linea !

ARMANDO888
26-01-2014, 12:15
la 19

deal(deck, face, suit );

oregon
26-01-2014, 12:18
Che era la 19 va bene ... ma quando hai questi problemi indica chiaramente la line e il messaggio. Altrimenti si perde un sacco di tempo.

In quella funzione devi passare due vettori const char * e quindi all'inizio devono essere

const char *suit[4] ...
const char *face[13] ...

ARMANDO888
26-01-2014, 12:23
Intendi cosi giusto?


deal(deck, const char *face[13], const char *suit[4] );

ma mi da questo errore:

|19|error: expected expression before 'const'|

oregon
26-01-2014, 12:28
No .. non intendo nella chiamata della funzione ... intendo all'inizio del main ...

ARMANDO888
26-01-2014, 12:34
adesso segnale questo

|19|warning: passing argument 1 of 'deal' from incompatible pointer type [enabled by default]|

oregon
26-01-2014, 12:49
Da void deal ( const int wDeck[][13] togli il const

void deal ( int wDeck[][13],

Loading