Esercizio sulle Union: idee?

Messaggioda SalvatCpo » 09/05/2018, 22:53

//In uno zoo, i felini sono contrassegnati con delle lettere mentre le scimmie con dei numeri.
//Scrivi un programma che prenda contrassegno, specie ed età di 10 animali.
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int main()
{
struct animale {
char specie[20];
int age;
union {
int n;
char c;
} contrassegno;
} animali[10];
int i=0;
while (i<10)
{
printf ("Dammi specie, età e contrassegno: ");
scanf ("%s", &animali[i].specie);
scanf ("%d", &animali[i].age);
???
i++;
}
system ("PAUSE");
return 0;
}



NON SO COME CHIEDERE IL CONTRASSEGNO, DATO CHE NELLA SCANF NON POSSO SAPERE A PRIORI SE E' UN INTERO O UN CARATTERE.
DOVE HO MESSO I PUNTINI INTERROGATIVI... CHE RIGA DI CODICE DOVREBBE ESSERCI?

Grazie in anticipo :-)
SalvatCpo
Average Member
Average Member
 
Messaggio: 126 di 726
Iscritto il: 30/12/2017, 17:55

Re: Esercizio sulle Union: idee?

Messaggioda Super Squirrel » 10/05/2018, 00:10

Non mi ero mai imbattuto nelle union prima d'ora, ho appena letto cosa sono. :-)

Per quanto riguarda la tua domanda, potresti controllare con un if se sei nel caso "felino" o nel caso "scimmia" e regolarti di conseguenza prevedendo due diverse scanf.
Chi dorme in democrazia, si sveglia in dittatura.
Super Squirrel
Senior Member
Senior Member
 
Messaggio: 202 di 1486
Iscritto il: 16/05/2013, 22:05

Re: Esercizio sulle Union: idee?

Messaggioda apatriarca » 11/05/2018, 20:03

@SuperSquirrel ha ragione.. Devi usare un if che confronti il valore letto con "scimmia" o "felino" (non è chiaro come tu debba agire nel caso in cui il valore letto sia diverso da questi due valori.. immagino mostrare un errore) e quindi leggere il valore diversamente in base al risultato di questo confronto.
apatriarca
Moderatore
Moderatore
 
Messaggio: 5047 di 10436
Iscritto il: 08/12/2008, 20:37
Località: Madrid

Re: Esercizio sulle Union: idee?

Messaggioda SalvatCpo » 12/05/2018, 07:29

beh, nell'if dovrei mettere un confronto con tutti i felini e con tutte le scimmie esistenti...
quindi preferisco chiedere direttamente all'utente "stai inserendo una scimmia o un felino?" e poi differenziare le due scanf come avete suggerito. Grazie dell'aiuto :)
SalvatCpo
Average Member
Average Member
 
Messaggio: 127 di 726
Iscritto il: 30/12/2017, 17:55

Re: Esercizio sulle Union: idee?

Messaggioda vict85 » 13/05/2018, 14:25

Direi che è una buona soluzione.
vict85
Moderatore
Moderatore
 
Messaggio: 9308 di 19253
Iscritto il: 16/01/2008, 00:13
Località: Berlin


Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite