Buscar

Elevador

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

#include <stdio.h>
#include <stdlib.h>
typedef struct
{
 int ori, dest;
} pessoa;
int botao(int Nandares, pessoa* vet, int i, int* tam)
{
 char chamada;
 printf("Digite S para chamar elevador e N para sair: ");
 fflush(stdin);
 scanf("%c",&chamada);
 if(chamada=='n' || chamada=='N')
 return i;
 else if(chamada=='s'|| chamada=='S')
 {
 i++;
 if(i>=0 && i<6)
 {
 *tam++;
 vet=(pessoa *)realloc(*tam,sizeof(pessoa));
 }
 printf("Insira o andar de origem: ");
 scanf("%d",&(vet[i].ori));
 while(vet[i].ori<0 || vet[i].ori>Nandares)
 {
 printf("Insira um andar valido: ");
 scanf("%d", &vet[i].ori);
 }
 printf("Insira o andar destino: ");
 scanf("%d", &vet[i].dest);
 while(vet[i].dest<0 || vet[i].dest>Nandares || vet[i].dest==vet[i].ori)
 {
 printf("Insira um destino valido: ");
 scanf("%d",&vet[i].dest);
 }
 }
 return i;
}
int main()
{
 int i=-1, tam=0, tempo=-1, Nandares=15, pose1=0, sob=0, desc=0;
 int j, k;
 pessoa *vet;
 vet=(pessoa *)calloc(tam,sizeof(pessoa));
 while(1)
 {
 tempo++;
 printf("i=%d\n",i);
 printf("ori=%d dest=%d\n",vet[i].ori, vet[i].dest);
 if(tam==1)
 {
 pose1=vet[0].ori;
 if(vet[0].ori<vet[0].dest)
 {
 sob=1;
 desc=0;
 }
 else if(vet[0].ori>vet[0].dest)
 {
 sob=0;
 desc=1;
 }
 }
 if(tam>1)
 {
 if(sob==1)
 {
 for(j=0; j<tam; j++)
 {
 //conferir o destino maior
 for(k=pose1; k<vet[i].ori; k++)
 {
 if(k==vet[j].dest)
 {
 pose1=vet[j].dest;
 }
 }
 }
 }
 }
 }
 }

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais