jurassico 0 Denunciar post Postado Outubro 22, 2015 gotaria de saber pq este programa nao esta executando a segunda parte q é a de pesquisa.... #include <stdio.h> #include <stdlib.h> #define SIZE 200 char nome[200][50]; char endereco[SIZE][50]; int CPF [SIZE]; int op; void cadastro (); void pesquisa(); int main(void){ cadastro(); } void cadastro (){ static int linha; do{ printf ("\nInforme Nome: "); scanf ("%s", &nome[linha]); printf ("\nInforme endereco: "); scanf ("%s", &endereco[linha]); printf ("\nInforme CPF:"); scanf ("%d", &CPF[linha]); printf ("\nDigite 1 para continuar ou outro valor para sair: "); scanf ("%d", &op); linha ++; }while(op == 1); } void pesquisa(){ int cpfpesquisa; int i; int o; do { printf ("\n Digite 1 para pesquisar por CPF: "); scanf ("%d", &op); switch (op) { case 1:{ printf ("\n Digite CPf: "); scanf ("%d", &cpfpesquisa); for (i=0; i<SIZE; i++){ if (CPF[i] == cpfpesquisa); printf ("\n Nome: %s\nEndereco: %s\CPF %d" ,nome[i] ,endereco[i] ,CPF[i]); } break; } } printf ("\n Digite 1 para continuar psquisando ou 2 para sair: "); scanf ("%d", &op); }while (o == 1); system ("pause"); } Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Outubro 22, 2015 Que segunda parte? Não tem nada depois do cadastro sendo chamado no main. Compartilhar este post Link para o post Compartilhar em outros sites
jurassico 0 Denunciar post Postado Outubro 22, 2015 Que segunda parte? Não tem nada depois do cadastro sendo chamado no main. TEM SIM, É PRA APARECER A MESAGEM DIZENDO SE O USUARIO QUER PESQUISAR O CPF Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Outubro 22, 2015 É? Onde? Não poste o texto inteiro em maiúsculas... Compartilhar este post Link para o post Compartilhar em outros sites
jurassico 0 Denunciar post Postado Outubro 23, 2015 É? Onde? Não poste o texto inteiro em maiúsculas... essa parte void pesquisa(){ int cpfpesquisa; int i; int o; do { printf ("\n Digite 1 para pesquisar por CPF: "); scanf ("%d", &op); switch (op) { case 1:{ printf ("\n Digite CPf: "); scanf ("%d", &cpfpesquisa); for (i=0; i<SIZE; i++){ if (CPF[i] == cpfpesquisa); printf ("\n Nome: %s\nEndereco: %s\CPF %d" ,nome[i] ,endereco[i] ,CPF[i]); } break; } } printf ("\n Digite 1 para continuar psquisando ou 2 para sair: "); scanf ("%d", &op); }while (o == 1); system ("pause"); } Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Outubro 23, 2015 Eu sei. Me aponte entre as molduras em vermelho onde você está chamando a função, porque não existe nada ali. Compartilhar este post Link para o post Compartilhar em outros sites
jurassico 0 Denunciar post Postado Outubro 23, 2015 Eu sei. Me aponte entre as molduras em vermelho onde você está chamando a função, porque não existe nada ali.oq tenho q fazer entao para executar essa segunda parte?? Pq esse codigo nao esta compilando?? #include <stdio.h>#include <stdlib.h>#include <math.h>#include <string.h> char nome [200] [50]; char endereco [200] [50]; int cpf [200]; int op; void cadastro (); void pesquisa (); int main (void){ {{cadastro(); pesquisa();} int opcao1; do{ printf ("Informe uma opcao1: caixa=11 estoque=22 cadastro de clientes=66 \n");scanf ("%d", &opcao1); switch (opcao1){ case 66:{ void cadastro (){static int linha;do{printf ("Digite nome:\n");scanf ("%s", &nome[linha]);printf ("Digite endereco:\n");scanf ("%s", &endereco[linha]);printf ("Digite cpf:\n");scanf ("%d", &cpf[linha]);printf ("Digite 1 para sair:\n");scanf ("%d", &op);linha ++;}while (op==1); }void pesquisa (){int cpfpesquisa;char enderecopesquisa[50];int i;do {printf ("Digite 1 para pesquisar o CPf ou 2 para pesquisar o endereco: \n");scanf ("%d", &op); switch (op){case 1:printf ("Digite o cpf:\n");scanf ("%d", &cpfpesquisa);for (i=0; i<200 ; i++){ if (cpf[i]==cpfpesquisa){printf ("Nome:%s\nCpf:%d\nEndereco%s \n", nome [i], cpf [i], endereco[i]);}}break; case 2:printf ("Digite o endereco: \n");scanf ("%s", &enderecopesquisa);for (i=0; i<200; i++){ if (strcmp(endereco[i], enderecopesquisa )==0){printf ("Nome:%s\nCpf:%d\nEndereco%s \n", nome [i], cpf [i], endereco[i]);}}break; default:printf ("Opcao invalida...");break; }printf ("Digite 1 para continuar pesquisando: \n");scanf ("&d", &op); }while (op==1);}system ("pause"); Compartilhar este post Link para o post Compartilhar em outros sites
CiroboyBR 0 Denunciar post Postado Outubro 23, 2015 Aprenda a indentar seu código que você não terá esses erros de compilação: http://www.ime.usp.br/~pf/algoritmos/aulas/layout.html Compartilhar este post Link para o post Compartilhar em outros sites
jurassico 0 Denunciar post Postado Outubro 23, 2015 identar nao adianta nada.... nao sao erros de organização.. Compartilhar este post Link para o post Compartilhar em outros sites
Felipe-Petrópolis 11 Denunciar post Postado Outubro 23, 2015 Olá! Antes tarde do que nunca . . . Jurassico o seu codigo anterior tá quase certo, esse dai é que tá mais pra lá do que pra cá, dá um retorno no outro post que eu vou te ajudar lá . . . e sem querer ofender a identação é muito importante, pois uma melhor organização visual do codigo, pode lhe ajudar a evitar a cometer erros, ou mesmo lhe ajudar a identifica-los melhor . . . Compartilhar este post Link para o post Compartilhar em outros sites
Felipe-Petrópolis 11 Denunciar post Postado Outubro 23, 2015 Olá! Oi Jurassico, antes Tarde do que Nunca . . . Bom, vamos terminar . . . - Os dois alertas seguintes estão relacionados ao fato de que no caso de strings não é necessário o uso de “&” dentro do scanf(), não vou explicar agora por falta de tempo, mas se quiser tente se informar melhor sobre esse detalhe |22|warning: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘char (*)[50]’ [-Wformat=]||24|warning: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘char (*)[50]’ [-Wformat=]| - |57|warning: ‘o’ is used uninitialized in this function [-Wuninitialized]| - se eu não estiver errado - aqui você usou uma variável sem que está fosse inicializada com algum valor, para evitar possíveis problemas com o lixo de memoria, de uma pesquisada sobre isso . . . - |39|warning: unused variable ‘o’ [-Wunused-variable]| - este alerta esta lhe dizendo que você declarou uma variável a qual você não está usando para nada, pelo menos ate aqui . . . você pode elimina-la do codigo - |17|warning: control reaches end of non-void function [-Wreturn-type]| - neste caso você só se esqueceu de um return (0); antes da chave de fechamento no fim da main() - |53|warning: unknown escape sequence: '\C' [enabled by default]| - o compilador esta confundindo o “ \C ” como um código de escape invalido, é só eliminar a barra ou então colocar um “ n ” (\n) após a barra, para funcionar legal - if (CPF == cpfpesquisa); - não é necessario o " ; " no fim do if () - system ("pause"); - se o seu objetivo com essa função era o de evitar que a tela do programa se fechasse imediatamente após ser aberta, você pode ( e eu lhe aconselho a ) substituí-la por getchar(); - e respondendo a sua pergunta, a segunda parte não está sendo executada porque você não a está chamando, para isso basta chama-la dentro do main() da mesma forma como você está chamando a funcão cadastro(); Agora você entende o que eu lhe disse sobre tirar ( declarar ) as funções fora da função main() e chama-las quando necessario, Agora sim o codigo está muito mais claro, não acha? Bom, por hora é só . . . veja se as dicas acima lhe ajudam . . . Ubuntu 14.04 GCC 4.8 CodeBlocks 13.12 Espero Ter Ajudado ! ! ! Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Outubro 23, 2015 O fórum tem uma tag CODE p/ postar os códigos...Use-a. Compartilhar este post Link para o post Compartilhar em outros sites