Ir para conteúdo

POWERED BY:

Arquivado

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

Isaias Tavares

Lista Estática Sequencial

Recommended Posts

Tenho a seguinte questão:

 

Dado o registro de um Hotel a seguir:

 

Tipo

Hospede=registro

apto->inteiro

nome->caracter

valor_diaria->float

data_inic->string10

data_fim->string10

Fim-registro

 

a) Criar essa estrutura de dados (tipo Hospede) criando o tipo de dados de Lista Estática Sequencial

 

B) Fazer uma rotina que insere todos os hospedes em ordem pelo apto de acordo com a estrutura (Lista Estática Sequencial).

 

Bom, eu fiz da seguinte forma, mas não sei está certo, poderiam me orientar?

 

a)

#include<stdio.h>

#define MAX 100

 

typedef struct{

int apto;

char nome[30];

float valor_diaria;

char data_inic[10];

char data_fim[10];

}HOSPEDE;

 

typedef struct{

HOSPEDE hospede[MAX];

int prim, ult;

}LISTA;

 

B)

void ImprimirLista(Lista *lista){

int cont;

if(lista->prim == lista->ult){

printf("A lista está vazia!\n\n");

}

printf("Lista de Hóspedes:\n\n");

for(cont = lista->prim; cont < lista->ult; cont++){

printf("Apartamento:\t\t%d\n", lista->hospede[cont].apto);

printf("Nome:\t\t%s\n", lista->hospede[cont].nome);

printf("Valor da Diária:\t%s\n", lista->hospede[cont].valor_diaria);

printf("Data de Início:\t%s\n", lista->hospede[cont].data_inic);

printf("Data Final:\t%s\n", lista->hospede[cont].data_fim);

}

}

 

Desculpa pessoal, o código não ficou identado

 

a)

 

#include<stdio.h>
#define MAX 100

typedef struct{
   int apto;
   char nome[30];
   float valor_diaria;
   char data_inic[10];
   char data_fim[10];
}HOSPEDE;

typedef struct{
   HOSPEDE hospede[MAX];
   int prim, ult;
}LISTA;

 

B)

 

void ImprimirLista(Lista *lista){
int cont;
if(lista->prim == lista->ult){
	printf("A lista está vazia!\n\n");
}
printf("Lista de Hóspedes:\n\n");
for(cont = lista->prim; cont < lista->ult; cont++){
	printf("Apartamento:\t\t%d\n", lista->hospede[cont].apto);
	printf("Nome:\t\t%s\n", lista->hospede[cont].nome);
	printf("Valor da Diária:\t%s\n", lista->hospede[cont].valor_diaria);
	printf("Data de Início:\t%s\n", lista->hospede[cont].data_inic);
	printf("Data Final:\t%s\n", lista->hospede[cont].data_fim);
}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nesta parte do código não encontrei erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como o exercício pede uma lista estática, creio que seja p/ usar um array de struct.

P/ inserir você pode percorrer o array até encontrar uma posição cujo número do apto seja maior do que o que você está tentando inserir. Então, você copia tudo o que está à direita 1 posição p/ frente e copia os novos dados na posição liberada.

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.