Programa só mostra a lista de objetos completa após o vetor ficar cheio.

16/07/2020

5

#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");
}
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários. Para saber mais sobre o uso de cookies,
consulte nossa política de privacidade. Ao continuar navegando em nosso site, você concorda com a nossa política.

Aceitar