Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - struct problema
Forum - C/C++ - struct problema

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
frog87 (Normal User)
Newbie


Messaggi: 7
Iscritto: 06/04/2009

Segnala al moderatore
Postato alle 11:23
Mercoledì, 15/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++

  1. struct ora {
  2.   int ore[24];
  3.   int minuti[60];
  4. } ho,min;



Codice sorgente - presumibilmente Plain Text

  1. printf("Inserisci l ora nel formato ore-minuti : ");
  2. scanf("\n%d", &ho.ore.minuti);



PM Quote
Avatar
andrea.b89 (Ex-Member)
Pro


Messaggi: 129
Iscritto: 03/03/2009

Segnala al moderatore
Postato alle 11:37
Mercoledì, 15/04/2009
Penso tu non abbia ben chiaro come accedere ad un struttura.

Comunque puoi fare

Codice sorgente - presumibilmente C++

  1. typedef struct ora_struct{
  2.     int minuti;
  3.     int ora;
  4. }orario;



per usarla poi :

Codice sorgente - presumibilmente C/C++

  1. int main()
  2. {
  3.   orario o;
  4.  
  5.   printf("Inserici l'ora : ");
  6.   scanf("%d", &o.ora);
  7.  
  8.   printf("Inserici i minuti : ");
  9.   scanf("%d", &o.minuti);
  10.  
  11.   return 0;
  12. }



in questo modo hai inserito nella struttura ore e minuti.

Spero di essere stato chiaro e di aiuto :k:

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 11:43
Mercoledì, 15/04/2009
Testo quotato

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++

  1. typedef struct ora_struct{
  2.     int minuti;
  3.     int ora;
  4. }orario;



per usarla poi :

Codice sorgente - presumibilmente C/C++

  1. int main()
  2. {
  3.   orario o;
  4.  
  5.   printf("Inserici l'ora : ");
  6.   scanf("%d", &o.ora);
  7.   fflush(stdin);
  8.  
  9.   printf("Inserici i minuti : ");
  10.   scanf("%d", &o.minuti);
  11.   fflush(stdin);
  12.  
  13.   return 0;
  14. }




PM Quote
Avatar
frog87 (Normal User)
Newbie


Messaggi: 7
Iscritto: 06/04/2009

Segnala al moderatore
Postato alle 12:06
Mercoledì, 15/04/2009
grazie per l' aiuto . devo dare uno sguardo piu' approfondito su questo argomento .

PM Quote
Avatar
Lawliet (Normal User)
Expert


Messaggi: 386
Iscritto: 09/04/2009

Segnala al moderatore
Postato alle 23:43
Mercoledì, 15/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 :)

PM Quote
Avatar
andrea.b89 (Ex-Member)
Pro


Messaggi: 129
Iscritto: 03/03/2009

Segnala al moderatore
Postato alle 23:50
Mercoledì, 15/04/2009
Testo quotato

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 ;)

PM Quote
Avatar
Lawliet (Normal User)
Expert


Messaggi: 386
Iscritto: 09/04/2009

Segnala al moderatore
Postato alle 23:53
Mercoledì, 15/04/2009
e scusa e il 24 che fai? lo lasci vuoto? o.O'

PM Quote
Avatar
andrea.b89 (Ex-Member)
Pro


Messaggi: 129
Iscritto: 03/03/2009

Segnala al moderatore
Postato alle 23:57
Mercoledì, 15/04/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 :)

PM Quote
Avatar
Lawliet (Normal User)
Expert


Messaggi: 386
Iscritto: 09/04/2009

Segnala al moderatore
Postato alle 0:03
Giovedì, 16/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

PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo