#include // Define uma struct Pessoa, que contem os dados // (atributos) de uma pessoa, do ponto de vista deste programa. // Repare que "struct Pessoa" passa a ser um novo tipo de dados ! struct Pessoa { char nome[32]; char sobrenome[32]; int idade; }; // Define uma struct Cadastro, que contem o cadastro de ateh 10 // pessoas. Cada pessoa é descrita por uma struct Pessoa. struct Cadastro { struct Pessoa pessoas[10]; int cadastradas; // conta quantas pessoas estao cadastradas }; // Uma funcao para mostrar os dados de uma variavel do tipo "struct Pessoa". void mostra_pessoa(struct Pessoa pessoa) { printf("Nome: %s\n", pessoa.nome); printf("Sobrenome: %s\n", pessoa.sobrenome); printf("Idade: %d\n", pessoa.idade); } // Uma funcao para ler do teclado os dados de uma pessoa struct Pessoa ler_pessoa() { struct Pessoa umaPessoa; printf("Nome: "); scanf(" %[^\n]", umaPessoa.nome); printf("Sobrenome: "); scanf(" %[^\n]", umaPessoa.sobrenome); printf("Idade: "); scanf("%d", &umaPessoa.idade); return umaPessoa; } // Funcao para mostrar na tela todo o conteúdo de um cadastro void mostra_cadastro(struct Cadastro umCadastro) { int i; i = 0; while (i < umCadastro.cadastradas) { mostra_pessoa(umCadastro.pessoas[i]); puts(""); i = i + 1; } } // Funcao para adicionar uma pessoa ao cadastro int adiciona_pessoa(struct Cadastro * umCadastro) { if (umCadastro->cadastradas < 10) { umCadastro->pessoas[umCadastro->cadastradas] = ler_pessoa(); umCadastro->cadastradas = umCadastro->cadastradas + 1; return 1; } else { return 0; } } int main() { struct Cadastro cadastro; // esta variavel é o cadastro de pessoas char opcao = 'S'; int ok = 1; // precisa inicializar o cadastro com 0 pessoas cadastro.cadastradas = 0; // adiciona pessoas ao cadastro enquanto houver lugar para novas pessoas, // e o usuario quiser fazer novos cadastros while ((ok != 0) && ((opcao == 'S') || (opcao == 's'))) { printf("Digite os dados da pessoa %d: \n", cadastro.cadastradas + 1); ok = adiciona_pessoa(&cadastro); if (ok != 0) { printf("Continua (S/N) ? "); scanf(" %c", &opcao); puts(""); } } printf("Voce cadastrou %d pessoas\n", cadastro.cadastradas); printf("As pessoas cadastradas sao: \n\n"); mostra_cadastro(cadastro); return 0; }