dlinkm ha scritto:
Salve, con non poche difficoltà e anche grazie a questo forum sono andato avanti nello studio del linguaggio C.
Trovo però difficoltà enormi con questa tipologia di esercizi, e ne il libro di testo, ne tantomeno ricerche su ricerche online sono stati abbastanza esaustivi per illuminarmi.
Il tipo di esercizio è questo, con due struct "annidiate" (intendo con elementi di una che puntano all'altra, non mi viene un termine migliore), con un sottoprogramma che ne compara poi degli elementi.
Ve ne posto un esempio:
Date le seguenti strutture dati che rappresentano un’edicola:
#define N_RIVISTE 1000
#define MAX_STR 100
typedef struct{
char titolo[MAX_STR+1];
float prezzo;
int num_uscite;
int pagine_per_uscita;
} t_rivista;
typedef struct{
t_rivista riv [N_RIVISTE];
int n_riviste;
char nome[MAX_STR+1];
char citta[MAX_STR+1];
} t_edicola;
Realizzare un sottoprogramma che riceve come parametri un array di edicole edi, la sua dimensione
dim e una stringa c contenente il nome di una città. Per ciascuna edicola della città c, il
sottoprogramma identifica la rivista più cara e stampa a video la coppia di stringhe nome edicola -
nome rivista.
Grazie in anticipo a chiunque riesca a mettermi in moto la rotellina
Non è un esercizio difficile: devi semplicemente inizializzare un array di struct, in questo caso un array di edicole, che conterrà in ogni indice una struttura edicola la quale, a sua volta, conterrà i vari dati(nome, città, numero riviste) e l'array di riviste. Riempi l'array di edicole tramite due cicli: uno per scorrere l'array esterno e uno per scorrere l'array interno a ogni struttura. Poi fai la funzione per trovare la rivista più costosa e le passi l'array di edicole, lo scorri allo stesso modo di prima ma, questa volta, invece di riempirlo è come se dovessi cercare il massimo.