Guest User

Untitled

a guest
Jan 22nd, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.48 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int* alocar(int num,int* inicio)
  5. {
  6.     int* ponteiro;
  7.  
  8.     ponteiro=(int*)malloc(2*sizeof(int));
  9.  
  10.     if(ponteiro==NULL)
  11.     {
  12.         printf("Memoria insuficiente.");
  13.         exit (1);
  14.     }
  15.  
  16.     do
  17.     {
  18.         printf("Digite o numero do vagao no intervalo 1 a 99: ");
  19.         scanf("%d",&ponteiro[0]);
  20.  
  21.                 if(ponteiro[0]<=0 || ponteiro[0]>99)
  22.         {
  23.             printf("Numero fora da faixa.");
  24.             printf("\nDigite novamente o numero. \n");
  25.         }
  26.  
  27.  
  28.     }while(ponteiro[0]<1 || ponteiro[0]>99);
  29.  
  30.     ponteiro[1]=(int*) inicio;
  31.  
  32.     inicio=ponteiro;
  33.  
  34.     return inicio;
  35. }
  36.  
  37. int* desalocar(int num,int* inicio)
  38. {
  39.     int* aux;
  40.  
  41.     aux=*(inicio+1);
  42.  
  43.     free(inicio);
  44.     inicio=aux;
  45.  
  46.     return inicio;
  47. }
  48.  
  49. int main()
  50. {
  51.     int numVagoes,i,j,vagao,existe=0,valor,contador=0;
  52.     int* inicio=NULL;
  53.     int* aux;
  54.     int* ponteiro1;
  55.  
  56.     do
  57.     {
  58.         printf("Digite o numero de vagoes: ");
  59.         scanf("%d",&numVagoes);
  60.  
  61.     }while(numVagoes<1 || numVagoes>15);
  62.  
  63.     for(i=0;i<numVagoes;i++)
  64.     {
  65.         inicio=alocar(numVagoes,inicio);
  66.     }
  67.  
  68.     printf("Digite o vagao onde voce quer chegar: ");
  69.     scanf("%d",&vagao);
  70.  
  71.     aux=inicio;
  72.     valor=*aux;
  73.     //verifica se o vagão onde quer chegar existe.
  74.     for(i=0;i<numVagoes && existe==0;i++)
  75.     {
  76.         contador++;
  77.         if(valor==vagao)
  78.         {
  79.             existe++;
  80.         }
  81.         else
  82.         {
  83.             aux++;
  84.             aux=*aux;
  85.  
  86.             if(aux!=NULL)
  87.             {
  88.                 valor=*aux;
  89.             }
  90.         }
  91.     }
  92.  
  93.     contador--;
  94.     i--;
  95.  
  96.  
  97.     if(existe==1)
  98.     {
  99.         /*ponteiro1=(int*)malloc((numVagoes-contador)*sizeof(int));
  100.  
  101.         if(ponteiro1==NULL)
  102.         {
  103.             printf("Memoria insuficiente.");
  104.             for(i=0;i<numVagoes;i++)
  105.             {
  106.                 inicio=desalocar(numVagoes,inicio);
  107.             }
  108.             exit(1);
  109.         }
  110.  
  111.         j=0;
  112.         while(i<numVagoes)
  113.         {
  114.             ponteiro1[j]=(*aux);
  115.             aux++;
  116.             aux=*aux;
  117.             j++;
  118.             i++;
  119.         }
  120.         j--;
  121.  
  122.         while(j>=0)
  123.         {
  124.             printf("%d ",ponteiro1[j]);
  125.             j--;
  126.         }*/
  127.     }
  128.     else
  129.     {
  130.         printf("vagao nao existe.");
  131.     }
  132.  
  133.     for(i=0;i<numVagoes;i++)
  134.     {
  135.         inicio=desalocar(numVagoes,inicio);
  136.     }
  137.  
  138.     free(inicio);
  139.  
  140.     return 0;
  141. }
Add Comment
Please, Sign In to add comment