Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- int* alocar(int num,int* inicio)
- {
- int* ponteiro;
- ponteiro=(int*)malloc(2*sizeof(int));
- if(ponteiro==NULL)
- {
- printf("Memoria insuficiente.");
- exit (1);
- }
- do
- {
- printf("Digite o numero do vagao no intervalo 1 a 99: ");
- scanf("%d",&ponteiro[0]);
- if(ponteiro[0]<=0 || ponteiro[0]>99)
- {
- printf("Numero fora da faixa.");
- printf("\nDigite novamente o numero. \n");
- }
- }while(ponteiro[0]<1 || ponteiro[0]>99);
- ponteiro[1]=(int*) inicio;
- inicio=ponteiro;
- return inicio;
- }
- int* desalocar(int num,int* inicio)
- {
- int* aux;
- aux=*(inicio+1);
- free(inicio);
- inicio=aux;
- return inicio;
- }
- int main()
- {
- int numVagoes,i,j,vagao,existe=0,valor,contador=0;
- int* inicio=NULL;
- int* aux;
- int* ponteiro1;
- do
- {
- printf("Digite o numero de vagoes: ");
- scanf("%d",&numVagoes);
- }while(numVagoes<1 || numVagoes>15);
- for(i=0;i<numVagoes;i++)
- {
- inicio=alocar(numVagoes,inicio);
- }
- printf("Digite o vagao onde voce quer chegar: ");
- scanf("%d",&vagao);
- aux=inicio;
- valor=*aux;
- //verifica se o vagão onde quer chegar existe.
- for(i=0;i<numVagoes && existe==0;i++)
- {
- contador++;
- if(valor==vagao)
- {
- existe++;
- }
- else
- {
- aux++;
- aux=*aux;
- if(aux!=NULL)
- {
- valor=*aux;
- }
- }
- }
- contador--;
- i--;
- if(existe==1)
- {
- /*ponteiro1=(int*)malloc((numVagoes-contador)*sizeof(int));
- if(ponteiro1==NULL)
- {
- printf("Memoria insuficiente.");
- for(i=0;i<numVagoes;i++)
- {
- inicio=desalocar(numVagoes,inicio);
- }
- exit(1);
- }
- j=0;
- while(i<numVagoes)
- {
- ponteiro1[j]=(*aux);
- aux++;
- aux=*aux;
- j++;
- i++;
- }
- j--;
- while(j>=0)
- {
- printf("%d ",ponteiro1[j]);
- j--;
- }*/
- }
- else
- {
- printf("vagao nao existe.");
- }
- for(i=0;i<numVagoes;i++)
- {
- inicio=desalocar(numVagoes,inicio);
- }
- free(inicio);
- return 0;
- }
Add Comment
Please, Sign In to add comment