frog87 (Normal User)
Newbie
Messaggi: 7
Iscritto: 06/04/2009
|
dovrei riuscire a far inserire all utente ora e minuti che poi mi servono e ho usato 2 struct . Ma non saprei come fare.
Codice sorgente - presumibilmente C/C++ |
struct ora {
int ore[24];
int minuti[60];
} ho,min;
|
Codice sorgente - presumibilmente Plain Text |
printf("Inserisci l ora nel formato ore-minuti : ");
scanf("\n%d", &ho.ore.minuti);
|
|
|
andrea.b89 (Ex-Member)
Pro
Messaggi: 129
Iscritto: 03/03/2009
|
Penso tu non abbia ben chiaro come accedere ad un struttura.
Comunque puoi fare
Codice sorgente - presumibilmente C++ |
typedef struct ora_struct{ int minuti; int ora; }orario;
|
per usarla poi :
Codice sorgente - presumibilmente C/C++ |
int main()
{
orario o;
printf("Inserici l'ora : ");
scanf("%d", &o.ora);
printf("Inserici i minuti : ");
scanf("%d", &o.minuti);
return 0;
}
|
in questo modo hai inserito nella struttura ore e minuti.
Spero di essere stato chiaro e di aiuto |
|
theprogrammer (Normal User)
Guru^2
Messaggi: 2509
Iscritto: 28/01/2009
|
Postato originariamente da andrea.b89:
Penso tu non abbia ben chiaro come accedere ad un struttura. |
No ... visto quello che ha scritto, non ha chiare tante altre cose ...
In ogni caso, se usi Windows, ti consiglio di aggiungere una fflush(stdin) dopo le scanf
Codice sorgente - presumibilmente C++ |
typedef struct ora_struct{ int minuti; int ora; }orario;
|
per usarla poi :
Codice sorgente - presumibilmente C/C++ |
int main()
{
orario o;
printf("Inserici l'ora : ");
scanf("%d", &o.ora);
fflush(stdin);
printf("Inserici i minuti : ");
scanf("%d", &o.minuti);
fflush(stdin);
return 0;
}
|
|
|
frog87 (Normal User)
Newbie
Messaggi: 7
Iscritto: 06/04/2009
|
grazie per l' aiuto . devo dare uno sguardo piu' approfondito su questo argomento .
|
|
Lawliet (Normal User)
Expert
Messaggi: 386
Iscritto: 09/04/2009
|
Non solo la struttura, ma anche agli array. Ciò che avevi scritto int ore[24]: è come se avessi scritto un vettore di 25 elementi interi ed è sbagliato
Se volevi che l'utente inserisca solo da 00 a 23 per le ore e 00 a 59 per i minuti potresti implementare una while che controlli e richiede finchè non soddisfa le condizioni che vuoi
|
|
andrea.b89 (Ex-Member)
Pro
Messaggi: 129
Iscritto: 03/03/2009
|
Postato originariamente da Lawliet:
Non solo la struttura, ma anche agli array. Ciò che avevi scritto int ore[24]: è come se avessi scritto un vettore di 25 elementi interi ed è sbagliato
|
tralasciando il motivo della scelta, ti devo correggere, con int ore[24] crei un vettore di 24 elementi i cui indici vanno da 0 a 23 |
|
Lawliet (Normal User)
Expert
Messaggi: 386
Iscritto: 09/04/2009
|
e scusa e il 24 che fai? lo lasci vuoto? o.O'
|
|
andrea.b89 (Ex-Member)
Pro
Messaggi: 129
Iscritto: 03/03/2009
|
ti stai confondendo credo con il VB.
In C il numero fra parentesi quadre indica il numero di elementi del vettore.
In C l'indice di un vettore parte da 0.
Quindi se 0 è il primo elemento l'indice dell'ultimo elemento sarà N - 1 ossia nel tuo caso dove N è 24 l'ultimo indice sarà 23
|
|
Lawliet (Normal User)
Expert
Messaggi: 386
Iscritto: 09/04/2009
|
Ah forse ci siamo spiegati male entrambi alla fine
Dipende da come la prendiamo il problema, cioè io ho sempre pensato di fare così, ad esempio quando faccio i cicli uso appunto nelle iterazioni la condizione (<=N) invece tu (<N) sarebbe la stessa cosa, forse è più corretto il tuo. Ma alla fine è la stessa cosa (credo)
Il vb è un'altra cosa, anzi per colpa di quel linguaggio partivo sempre da 1 scordandomi di 0!! xD
|
|