[RISOLTO] Esercizio sulle struct{}

di il
7 risposte

[RISOLTO] Esercizio sulle struct{}

Si scriva un programma di gestione di un gattile che legga dall'input un intero "n", quindi per n volte, legga:Un codice id del gatto (un intero);
L'eta del gatto in anni (un intero);
Il peso del gatto in Kg (un float);
Il tipo di cibo assunto dal gatto, espresso come 0 per le crocchette, 1 per le scatolette, 2 per il tonno in scatola.Nello stesso ordine in cui sono stati immessi i dati dei gatti si stampino, uno per linea, i codici id e il tipo di cibo di tutti i gatti che hanno problemi di dieta in giovane eta, ovvero abbiano meno di 4 anni e pesino piu della media dei gatti. accanto al codice id si stampi, separato da uno spazio, il tipo di cibo assunto dal gatto, ovvero crocchette, scatolette oppure tonno.

Ho fatto questo programma:
#include <stdio.h>
#include <stdlib.h>

enum tcibo{
	crocchette,
	scatolette,
	tonno,
};

typedef struct{
	int id;
	int eta;
	float peso;
	enum tcibo cibo;;
}gatto;

int main (){
	gatto *g;
	int n,i;
	float s,m;
	s=0;
	scanf("%d",&n);
	g=(gatto*)malloc(n*sizeof(gatto));
	for (i=0;i<n;i++){
		scanf("%d",&g[i].id);
		scanf("%d",&g[i].eta);
		scanf("%f",&g[i].peso);
		scanf("%d",&g[i].cibo);
		s=s+(g[i].peso);
	}
	m=s/n;
	for (i=0;i<n;i++){
		if (((g[i].eta)<4)&&((g[i].peso)>m)){
			if ((g[i].cibo)==0){                     //come migliorare questa parte con "enum"??
			printf("%d crocchette\n",g[i].id);      
			}else if ((g[i].cibo)==1){
			printf("%d scatolette\n",g[i].id);
			}else if ((g[i].cibo)==2){
			printf("%d tonno\n",g[i].id);
			}
		}
	return 0;
}
}
Ma non mi stampa nulla...qualcuno mi puo' aiutare a capire dove sbaglio anche per la parte del printf dove ho scritto il commento??

grazie in anticipo

7 Risposte

  • Re: [RISOLTO] Esercizio sulle struct{}

    Perchè nessuno risponde? Ho violato qualche regola del forum? Se è così non era mia intenzione...
  • Re: [RISOLTO] Esercizio sulle struct{}

    Nessun risponde forse perché il quesito non è chiaro.

    Cosa vuol dire "non stampa nulla"? Come si dovrebbe rispondere?

    Dai maggiori informazioni, cosa inserisci, cosa dovresti visualizzare, hai fatto debugging, hai inserito printf per vedere il valore delle variabili? Insomma, informazioni in più sono necessarie ...
  • Re: [RISOLTO] Esercizio sulle struct{}

    Il compilatore che ho è CodeBlock e nel debugging non mi da niente (so che non è un compilatore eccellente come il gcc solo che il mio pc ha un schada grafica nvidia e linux li da problemi) non mi da nessun output (in questo senso non stampa nulla)... ho scritto l'esercizio e un codice completo ma non funzionante a quanto pare anche se viene eseguito fino in fondo già che mi ritorna 0... più di queste informazioni non so che scrivere sinceramente...
  • Re: [RISOLTO] Esercizio sulle struct{}

    Se scrivessi meglio le parentesi di tutte quelle if ti accorgeresti che il return è in una posizione sbagliata. E non c'entra l'IDE o il compilatore ma solo come scrivi il codice sorgente.

    Togli quel return e controlla.

    Inoltre tutte quelle if possono essere sostituite da uno switch..case
  • Re: [RISOLTO] Esercizio sulle struct{}

    Ahahahahahahahhaah che vergogna

    grazie mille
  • Re: [RISOLTO] Esercizio sulle struct{}

    Ah un altra cosa ora il programma va perfettamente...solo che mi è rimasto il dubbio su come utilizzare enum per scrivere il tipo di cibo senza scriverlo manualmente...come si fa??
  • Re: [RISOLTO] Esercizio sulle struct{}

    Inizializza un vettore di stringhe con il nome del cibo e utilizza il valore come indice
Devi accedere o registrarti per scrivere nel forum
7 risposte