Array di stringhe casuali

di il
4 risposte

Array di stringhe casuali

Buona sera!
l'esercizio mi chiede di creare in array di 10 "biciclette"
contenenti vari campi tra cui modello (scelta casuale tra city, corsa, cross, mtb)

ho provato a fare una funzione che mi scelga un modello casuale ma non riesco a capire l'errore quando compilo chiedo gentilmente se qualcuno puo controllare grazie


typedef struct{
int codice;
char mod[4]; //modello
}bici;//c

typedef struct{
bici b[N];//biciclette
}BikeSharing;//b

int randmodello(bici *c){
c->mod[4]={"city", "corsa", "cross", "mtb" };
return c->mod[rand % 4];
}

int main(int argc, char *argv[])
{
srand(time(0));
bici c;
BikeSharing b;

system("PAUSE");
return 0;
}

4 Risposte

  • Re: Array di stringhe casuali

    Si scrive rand ( ) % 4 e non rand % 4.
    ah, e dai un valore ad N prima di usarlo per definire la dimensione di un array.
  • Re: Array di stringhe casuali

    Ok grazie ma l'errore del compilatore sta proprio in
    c->mod[4]={"city", "corsa", "cross", "mtb" };
    Ho pensato che gli elementi di un vettore non possono contenere a loro volta delle stringhe e quindi altri elementi...ma non sono sicura...
  • Re: Array di stringhe casuali

    dile ha scritto:


    Ok grazie ma l'errore del compilatore sta proprio in
    c->mod[4]={"city", "corsa", "cross", "mtb" };
    Ho pensato che gli elementi di un vettore non possono contenere a loro volta delle stringhe e quindi altri elementi...ma non sono sicura...
    devi utilizzare una matrice di caratteri per memorizzare più parole nella stessa variabile.
    dichiari char mod[4][50]; il 4 è il numero massimo di stringhe contenute, mentre il 50 è la lunghezza massima di ogni stringa (in questo caso potresti mettere anche meno, come 10, dato che non ti servono parole lunghe, era solo per farti un esempio).
    se invece dichiari, come hai fatto te, char mod[4], significa che stai creando una stringa con 4 caratteri di lunghezza.
  • Re: Array di stringhe casuali

    Chiaro!
    grazie mille
Devi accedere o registrarti per scrivere nel forum
4 risposte