Array di stringhe casuali

di Anonimizzato18048 il
4 risposte
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

  • 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.
  • 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...
  • 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.
  • Chiaro!
    grazie mille
Devi accedere o registrarti per scrivere nel forum
4 risposte