Programa só mostra a lista de objetos completa após o vetor ficar cheio.
#include<stdio.h> //Inicio Structs typedef struct{ int codigo; char nomeContato[40]; char telefoneContato[40]; char emailContato[40]; } contato; //Fim Structs //Inicio Funções void cabecalho(){ printf("-------- Agenda --------\n\n"); } int menu(){ int opc = 0; printf("\t1 - Novo Contato\n"); printf("\t2 - Agenda\n"); printf("\t0 - Sair\n"); scanf("%d", &opc); return opc; } void zeraVetor(contato *vet){ int i; for (i=0; i<5; i++){ vet[i].codigo = 0; } } int retornaUltimaPosUsada(contato *vet){ int i = 0; while(vet[i+1].codigo > 0){ i++; } return i; } void cadastraContato(contato *vet){ int i = 0; i = retornaUltimaPosUsada(vet); if (i == 6){ printf("Limite de Contatos Atingidos!\n"); system("PAUSE"); return; } printf("Codigo do contato: [%d]", i+1); fflush(stdin); vet[i+1].codigo = i+1; printf("\nNome:"); gets(vet[i+1].nomeContato); fflush(stdin); fflush(stdin); vet[i+1].codigo = i+1; printf("\nTelefone:"); gets(vet[i+1].telefoneContato); fflush(stdin); vet[i+1].codigo = i+1; printf("\nEmail:"); gets(vet[i+1].emailContato); printf("\nCadastrado com Sucesso!\n"); fflush(stdin); system("PAUSE"); //Inicio Cadastro } void listarContatos(contato *vet){ int i; printf("Codigo Nome Telefone Email\n"); printf("___________________\n"); for ( i = 1; i<retornaUltimaPosUsada(vet); i++){ printf ("| %d | %s | %s | %s |\n", vet[i].codigo, vet[i].nomeContato, vet[i].telefoneContato, vet[i].emailContato); } system("PAUSE"); } //Fim Funções int main (){ contato vet[6]; int itemEscolhido; zeraVetor(vet); while(1==1){ system("CLS"); cabecalho(); itemEscolhido = menu(); //Inicio Switch Case switch(itemEscolhido){ case 1: system("CLS"); cabecalho(); printf("\n\t 1 - Novo contato \n"); cadastraContato(vet); break; case 2: system("CLS"); cabecalho(); printf("\n\t\t 2 - Agenda \n"); if(retornaUltimaPosUsada(vet) > 0){ listarContatos(vet); } else{ printf("\n Agenda vazia!\n"); system("PAUSE"); } break; case 0: return; default : printf("Opcao Invalida\n"); system("PAUSE"); } } //Fim Switch Case system("PAUSE"); }
Lucas Berto
Curtidas 0