RuiCorreia 0 Posted January 21, 2019 Report Share Posted January 21, 2019 (edited) //NÃO ESTOU A CONSEGUIR O NOME À STRUCT , ALGUEM ME CONSEGUE AJUDAR? typedef struct Pessoa { int id_pessoa; char nome[100]; int idade; float peso; }PESSOA; //FUNÇÃO PARA PEDIR OS DADOS DA PESSOA PESSOA DadosPessoa(int nrpessoas) { PESSOA *pessoa = (PESSOA *)malloc(sizeof(struct Pessoa)); printf("\nID? "); scanf_s(" %d", &pessoa->id_pessoa); //printf("Nome? "); //scanf_s(" %s", pessoa->nome); //NÃO ESTÁ A ADICIONAR NA ESTRUTURA O NOME printf("Idade? "); scanf_s(" %d", &pessoa->idade); printf("Peso? "); scanf_s(" %f", &pessoa->peso); printf("-------------||------------||--------------\n"); return *pessoa; } void AdicionarPessoa(PESSOA *pessoa, int nrpessoas) { for (int i = 0; i < nrpessoas; i++) { *(pessoa + i) = DadosPessoa(nrpessoas); } } void MostrarPessoa(PESSOA *pessoa, int nrpessoas) { if (nrpessoas == 0) { printf("\nNao existe nenhuma pessoa inserida"); } else { int nrdapessoa; printf("\nID'S EXISTENTES: \n"); for (int i = 0; i < nrpessoas; i++) { printf("ID: %d |", (pessoa + i)->id_pessoa); } printf("\n-------------||------------||--------------"); printf("\nQual e o ID que deseja consultar?\n"); scanf_s("%d", &nrdapessoa); for (int i = 0; i < nrpessoas; i++) { if ((pessoa + i)->id_pessoa == nrdapessoa) { printf("ID: %d\n", (pessoa + i)->id_pessoa); //printf("NOME: %s \n", (pessoa + i)->nome); // NÃO ESTÁ A INSERIR LOGO NÃO MOSTRA printf("IDADE: %d anos\n", (pessoa + i)->idade); printf("PESO: %.2f Kg", (pessoa + i)->peso); } } } } void EditarPeso(PESSOA *pessoa,int nrpessoas){ //NÃO SEI SE É O MODO CORRETO , NEM SEI SE ASSIM FUNCIONA /* int nrdapessoa; float novopeso; printf("\nID'S EXISTENTES: \n"); for (int i = 0; i < nrpessoas; i++) { printf("ID: %d |", (pessoa + i)->id_pessoa); } printf("\nQual e o ID que deseja consultar?\n"); scanf_s("%d", &nrdapessoa); printf("Qual é o novo peso?"); scanf_s("%f", &novopeso); for (int i = 0; i < nrpessoas; i++) { if ((pessoa + i)->id_pessoa == nrdapessoa) { novopeso == (pessoa + i)->peso; } } */ } char Menu() { char opcao; do { printf("\n-------------||------------||--------------"); printf("\n1 - Adicionar Pessoa"); printf("\n2 - Editar Pessoa"); printf("\n3 - Apagar Pessoa"); printf("\n4 - Mostrar Pessoa"); printf("\n0 - Sair"); printf("\nOpcao?-> "); scanf_s(" %c", &opcao); printf("-------------||------------||--------------"); } while (opcao <'0' || opcao >'4'); return opcao; } int main() { PESSOA *pessoa = (PESSOA *)malloc(sizeof(struct Pessoa)); int nrpessoas=0; char opcao; do { opcao = Menu(); switch (opcao) { case '1': printf("\nNumero de pessoas? "); scanf_s("%d", &nrpessoas); printf("-------------||------------||--------------"); AdicionarPessoa(pessoa, nrpessoas); break; case '2': //EditarPeso(pessoa, nrpessoas); break; case '3': break; case '4': MostrarPessoa(pessoa, nrpessoas); break; } } while (opcao != '0'); return 0; } Edited January 21, 2019 by RuiCorreia Link to post Share on other sites
HappyHippyHippo 1,162 Posted March 2, 2019 Report Share Posted March 2, 2019 eu acho que nem sequer estás a gravar uma pessoa sequer olha bem para o valor da variável "nrpessoas" IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to post Share on other sites
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now