#include #include #include #define TAM 5 struct Fruta{ char nome[80]; double pesoMedio; double calorias; short usado; //apenas para indicar se esta sendo usado ou nao }; typedef struct Fruta Fruta; void leFruta(Fruta *f); void leFruta2(Fruta *f); void imprimeFruta(Fruta f); void imprimeFrutas(Fruta vet[], int tam); void imprimeMenu(); int insereFruta(Fruta vet[], int tam, Fruta f); int removeFruta(Fruta vet[], int tam, char nome[]); void inicializaCadastro(Fruta vet[], int tam); int main(){ Fruta frutas[TAM]; //podemos armazenar até 100 frutas int opcao=1, aux; Fruta f; char nome[80]; inicializaCadastro(frutas, TAM); while(opcao != 0){ imprimeMenu(); scanf("%d", &opcao); getchar(); switch(opcao){ case 1:{ leFruta(&f); aux = insereFruta(frutas, TAM, f); if(aux) printf("\n\nFruta cadastrada com sucesso!\n"); else printf("\n\nProblema: Cadastro já está cheio!\n"); break; } case 2:{ printf("Digite o nome da fruta: "); scanf("%[^\n]", nome); getchar(); aux = removeFruta(frutas, TAM, nome); if(aux) printf("\n\nFruta removido com sucesso!\n"); else printf("\n\nProblema: Fruta não encontrada!\n"); break; } case 3:{ imprimeFrutas(frutas, TAM); break; } } } } //faz com que todas posicoes do vetor fiquem vagas void inicializaCadastro(Fruta vet[], int tam){ int i; for(i=0; inome); printf("Digite o peso medio da fruta:"); scanf("%lf", &(f->pesoMedio)); printf("Digite a quantidade de calorias da fruta:"); scanf("%lf", &(f->calorias)); } //Equivalente a funcao anterior //mas usa a sintaxe (*var).campo void leFruta2(Fruta *f){ printf("\n\n ------ Lendo Fruta -------\n"); printf("Digite o nome da fruta:"); scanf("%s", (*f).nome); printf("Digite o peso medio da fruta:"); scanf("%lf", &(*f).pesoMedio); printf("Digite a quantidade de calorias da fruta:"); scanf("%lf", &(*f).calorias); } //funcao que imprime uma unica fruta void imprimeFruta(Fruta f){ printf(" \n\n----- Imprimindo Fruta -------\n"); printf("Nome: %s\n",f.nome); printf("Peso medio: %lf\n", f.pesoMedio); printf("Calorias: %lf\n", f.calorias); } //funcao que imprime todas as frutas de um vetor void imprimeFrutas(Fruta vet[], int tam){ int i; for(i=0; i