Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

jurassico

pq este porgrama nao esta executando a segunda parte?

Recommended Posts

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

É? Onde?

 

1445546700312screensave.png

 

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.