Manipolazione struct

di il
3 risposte

Manipolazione struct

Buonasera! La situazione è questa:
#include<stdio.h>
#include<stdlib.h>

typedef enum{
	crocchette,
	scatolette,
	tonno}tipo_cibo;
	
typedef struct{
	int id;
	int eta;
	float peso;
	tipo_cibo cibo;} gatto;
	
int main(){
	
int i;
gatto primo, secondo, terzo, quarto;

	
	return 0;
}
Due domande:
- come faccio a inizializzare tutte le variabili dei quattro gatti (da standard input) utilizzando qualche ciclo?
- posso fare in modo che l'enum cibo assuma un valore intero (0,1,2) ma che stampi la stringa col nome del cibo corrispondente?

3 Risposte

  • Re: Manipolazione struct

    - come faccio a inizializzare tutte le variabili dei quattro gatti (da standard input) utilizzando qualche ciclo?
    Innanzitutto in tal caso si parla di assegnazione e non di inizializzazione. Detto questo, credo proprio che non sia possibile "ciclare" su più variabili distinte. Le soluzioni sono 2:
    - array di 4 gatti + ciclo;
    - funzione che si occupa dell'assegnazione + 4 chiamate.
    - posso fare in modo che l'enum cibo assuma un valore intero (0,1,2) ma che stampi la stringa col nome del cibo corrispondente?
    Non è possibile farlo direttamente. Scrivere
    typedef enum
    {
    	crocchette,
    	scatolette,
    	tonno
    }	tipo_cibo;
    equivale un po' a scrivere
    #define crocchette 0
    #define scatolette 1
    #define tonno 2
  • Re: Manipolazione struct

    Puoi usare un vettore di puntatori alle variabili e un ciclo che lavori sugli elementi del vettore
  • Re: Manipolazione struct

    Perfetto, grazie mille per le vostre risposte
Devi accedere o registrarti per scrivere nel forum
3 risposte