Ir para conteúdo

POWERED BY:

Arquivado

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

alinelourenco

Arvore Binaria

Recommended Posts

Galeraaaaaaa preciso de ajudaaaaaa, nao consigo fazer executar meus case 3 e 4, para procurar o maior e o menor numero.

Quem puder ajudar...........OBRIGADA

 

 

#include<stdio.h>
#include<conio.h>
 
main(){
       int arvore[10];
       int i,j,aux ;
       int resp,troca,busca;
    
     
      for (i = 0; i<10; i++){
              arvore[i] = 0;              
        }
      
       
    
       while (resp != 0){
              
              printf("\nMenu\n");
             
              printf(" 1 - Inserir numeros      \n");
              printf(" 2 - Exibir numeros digitados     \n");
              printf(" 3 - Exibir maior numero  \n");
              printf(" 4 - Exibir menot numero  \n"); 
              printf(" 5 - Sair                 ");   
              
              printf("\n Digite sua opcao: \a");
              scanf("%d",&resp); 
              
              // executa as funçoes do menu
              switch(resp){
                           
                     //insere numeros
                     case 1:                        
                            system("cls");
                            
                            printf(" Digite os numeros \n\n");
                            for (i=0; i<10; i++){
                                  printf("\t\tPosicao    %d : ",i+1); 
                                  scanf("%d",&arvore[i]);                                  
                            }
                            
                     break;
                     
                     //exibe numeros inseridos
                     case 2:
                            system("cls");
                            
                            printf(" Exibir numeros inseridos");
                            
                           
                            for(i=0; i<9; i++){
                                  for(j=i+1; j<10; j++){
                                        if (arvore[i] > arvore[j]){
                                              troca = arvore[i];
                                              arvore[i] = arvore[j];
                                              arvore[j] = troca;             
                                        }                                        
                                  }                            
                            }
                            for (i=0; i<10; i++){
                                   printf("\n Posicao %d  =  %d",i,arvore[i]); 
                            }
                            
                             break;
                             
                             case 3:
                             system ("cls");
                             
                              for (i = 0; i<10; i++)
               arvore[i] = 0;
                             
     if((i ->j != NULL) && (i->j->arvore > i->arvore))
        MaiorNumero(i->j);
        else
        
         printf("Maior numero encontrado foi: %d\n\n", i->arvore);
                    
             break;
             
             
             case 4:
             system ("cls");
 
void MenorNumero(No* p){
     if((p->Esq != NULL) && (p->Esq->Reg.Chave < p->Reg.Chave))
           MenorNumero(p->Esq);
          else
              printf("Menor numero encontrado foi: %d\n\n", p->Reg.Chave); 
             
             
              break;
                
                      //sair
                      case 5:
                            resp = 0;
                            system("cls");
                            printf(" Adeus !!!");
                            
              
              }        
             
       }            
      
       system("PAUSE");       
    }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aline, use [ CODE ] quando for postar algum código, facilita a leitura e formatação.

 

Não sei qual compilador você esta usando, mas pode substituir isso:

for (i = 0; i<10; i++){
arvore[i] = 0;              
}

por isso:

int arvore[10] = 0;

tbm recomendo a leitura desse tutorial: http://forum.imasters.com.br/topic/336835-tutorial-systempause-e-fflushstdin/

 

e sobre o erro.. o software não esta caindo no switch ou o codigo do case nao esta funcionando?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vitor, acho que você quis dizer int arvore[10] = {0};.

 

Aline, você está tentando definir uma função dentro de outra, e C não permite isso. Mova a definição para o escopo de arquivo (fora da main e de qualquer outra função) e coloque no case apenas a invocação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vitor, acho que você quis dizer int arvore[10] = {0};.

 

Aline, você está tentando definir uma função dentro de outra, e C não permite isso. Mova a definição para o escopo de arquivo (fora da main e de qualquer outra função) e coloque no case apenas a invocação.

 

ops, nem tinha reparado, orbigado pelo alerta

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.