
Originariamente inviata da
edoardol
da poco ho deciso di studiare programmazione sto leggendo un libro cosi a tempo perso Deitel & Deitel, C - Corso completo di programmazione
Non vorrei infierire, ma temo che il tempo speso col Deitel sia davvero "perso". Purtroppo si tratta di uno dei peggiori testi in circolazione: lacunoso, incompleto, fuorviante, eccessivamente semplificato, per giunta mal tradotto. L'organizzazione dell'esposizione è piuttosto bizzarra, e lo stile di codifica degli esempi si basa su idiomi deprecati, che ingenerano pessime abitudini di programmazione: il tutto in nome di una malintesa "semplificazione" che in un linguaggio come C è del tutto fuori luogo.
Ho appena finito di consigliare questa bibiografia in un altro post, e non posso esimermi dal farlo nuovamente in questo thread.
Quanto al tuo problema specifico, è noto che sono molto restio a presentare esempi di codice, poiché tale abitune può risultare diseducativa più spesso che formativa. Tuttavia qui una esposizione esaustiva dei concetti necessari per il pur semplice esercizio, e degli errori da te commessi, porterebbe via una quantità esorbitante di tempo e spazio nel thread. Ritengo dunque che la miglior terapia sia un crash course: metterti davanti alle pochissime righe di codice che realizzano correttamente la tua richiesta, ossia la selezione pseudocasuale di una stringa da un array di stringhe.
codice:
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#define NUM_PAROLE 4
int main(void)
{
time_t t;
size_t idx;
const char *Dizionario[NUM_PAROLE] = {"Pera", "Mela", "Banana", "Caffe"};
srand((unsigned) time(&t));
idx = rand() % NUM_PAROLE;
printf("Parola scelta casualmente: (%d) %s\n", idx, Dizionario[idx]);
return 0;
}
Il tutto, ovviamente, con l'intento di stimolare le tue riflessioni, domande e richieste di approfondimento sui concetti chiave.