Ciao,
ho difficoltà a capire il tipo enum, ho svolto un esercizio, ma non riesco ad assegnare i valori,
segue testo esercizio e mia soluzione.
*********************************
Archivi di CD musicali
Si considerino 2 archivi di CD A e B con un numero di Max 100 posizioni, caratterizzati da un codice numerico (no progressivo), il titolo, se italiano o no (0 o 1), se gruppi o cantanti singoli (0 o 1), la quantità ed il prezzo unitario, nell’archivio A vanno messi i CD italiani ed in B quelli stranieri.
Scrivere in C un programma che:
1) Legge da tastiera il codice numerico di un CD, e gli altri dati, ed a secondo della nazionalità determina se metterlo nello archivio A od in quello B (possibilmente utilizzando una funzione inserisci), curandosi di non lasciare alcuna posizione libera negli archivi.
*************************************
Grazie millecodice:#include <stdio.h> #include <stdlib.h> #include <string.h> typedef enum {SI=0,NO=1} boolean; typedef boolean risposta; typedef struct { int codice; char titolo[20]; boolean italiano; boolean gruppo; int quantita; float prezzo;} CD; #define MAX 100 typedef CD Archivio[MAX]; void inserisci (Archivio A, Archivio B); int main() { Archivio A={0}; Archivio B={0}; system("PAUSE"); return 0; } void inserisci (Archivio A, Archivio B) { char buffer[3]; risposta r; int done=0; int i=0; do { printf("Ci sono degli arrivi da inserire in magazzino? dgt SI per conferma\n"); scanf("%s",buffer); printf("Il gruppo del CD n.ro % e italiano? rispondi SI/NO\n",i+1); scanf("%s",buffer); if(!strcmp(buffer,"SI")) { A[i].italiano=0; //ERRORE printf("Inserisci il codice del CD n.ro %d\n",i+1); scanf("%d",&A[i].codice); printf("Inserisci il titolo del CD n.ro %d\n",i+1); scanf("%s",A[i].titolo); printf("Per il CD n.ro %d Inserisci %d se gruppo %d se singolo\n",i+1,SI,NO); scanf("%d",&r); printf("Inserisci la quantita di CD n.ro %d\n",i+1); scanf("%d",&A[i].quantita); printf("Inserisci il prezzo del CD n.ro %d\n",i+1); scanf("%f",&A[i].prezzo); i++; } else if (!strcmp(buffer,"NO")) { B[i].italiano=1; //ERRORE printf("Inserisci il codice del CD n.ro %d\n",i+1); scanf("%d",&B[i].codice); printf("Inserisci il titolo del CD n.ro %d\n",i+1); scanf("%s",B[i].titolo); printf("Per il CD n.ro %d Inserisci %d se gruppo %d se singolo\n",i+1,SI,NO); scanf("%d",&r); printf("Inserisci la quantita di CD n.ro %d\n",i+1); scanf("%d",&B[i].quantita); printf("Inserisci il prezzo del CD n.ro %d\n",i+1); scanf("%f",&B[i].prezzo); i++; } else done=1; } while(!done); }

Rispondi quotando