e C (salute!)
Posted by AlphaGamma on 01-12-2002 15:48
Sto cercando di capire questo cavolo di C per l'esame di algoritmi.

Ho provato a fare un esercizio di mescolamento mazzi che c'e' sul Deitel&Deitel, ma mi da un errore -1 in fase di esecuzione, e non so proprio cosa ho sbagliato nel programma. Sicuro che qua ci siano persone che sanno programmare in C, vi pongo il listato.
C'e' qualcuno che mi puo' aiutare a capire dove sta l'inghippo?

Io lo so che ho sbagliato qualcosa sui puntatori, ma non so cosa!!!! :(

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

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

int main()
{
char *semi[4]= {"quadri", "cuori", "fiori", "picche"};
char *numeri[13] = {"asso", "due", "tre", "quattro", "cinque", "sei", "sette", "otto", "nove", "dieci", "fante", "donna", "re"};
int mazzo[4][13]={0};

srand (time(NULL));
mescola (mazzo, semi, numeri);

return 0;
}


void mescola (int mazzo [][13], const char *s[], const char *n[])
{
int i, j, seme, numero;
void swap (int *, int *);

printf ("Sto mescolando il mazzo\n");

for (i=1; i<=52; i++) {
mazzo[(i-1)/13][(i-1)%13] = i;
};

for (j=1; j<=4; j++) {
for (i=1; i<=52; i++) {
int valore;
valore = rand () % 52;
swap (&mazzo[(i-1)/13][(i-1)%13], &mazzo[(valore)/13][(valore)%13]);
};
};
printf ("%8s di %-7s%c", n[numero], s[seme], i % 3 == 0 ? '\n' : '\t');
};

void swap (int *a, int *b)
{
int c;
c = *a;
*a = *b;
*b = c;
};

/* rutt */

Grazie!!!!
Powered by: vbHome (lite) v3.8 and vBulletin v2.3.1
Copyright © 2000 - 2002 Jelsoft Enterprises Limited