Ir para conteúdo
Fórum Script Brasil
  • 0

Help


Guest Noly

Pergunta

sad.gif

/*

3. Uma empresa transportadora está necessitando realizar

uma estatística do consumo de seus veículos por viagem.

Para tanto fornecerá, para cada viagem, a identificação

do veículo e o consumo por quilômetro. Fazer um programa

que, através de um menu simples, possibilite o cadastramento

dos dados de uma viagem ou a impressão do consumo mínimo e

máximo de todos os veículos cadastrados até o momento. Os

consumos mínimo e máximo deverão ser obtidos por uma única

função, que não pode ler e nem escrever nenhum dado. Os valores

obtidos pela função deverão ser impressos pelo programa principal.

Usar matriz de estruturas na solução do problema, alocando-a

dinamicamente na medida da necessidade. A memória necessária para

guardar a identificação dos veículos deverá ser alocada

dinamicamente. Desalocar toda a memória alocada após o seu uso.

*/

#include <stdio.h>

#include <stdlib.h>

#include <conio.c>

#include <ctype.h>

struct veiculo

{

int id;

float consumo;

};

void cadastra(struct veiculo *v,int n);

void verifica(struct veiculo *v,int n,float *ma,float *me);

main(void)

{

struct veiculo *v;

int n=0,mav,mev;

char R;

float ma,me;

ma=me=0;

do

{

clrscr();

printf(" Maior: %f Menor: %f ",ma,me);

printf("\nC - Cadastrar veículo\nI - Imprime maior e menor consumo\nE - Encerra o programa\n");

R=(char)toupper(getche());

switch ®

{

case 'C':

v=(struct veiculo *)realloc(v,n*sizeof(struct veiculo));

if (v==NULL)

{

printf("\nErro de alocação");

getch();

break;

}

cadastra(v,n);

n++;

break;

case 'I':

verifica(v,n,ma,me);

break;

case 'E':

printf("\n\n\n Fim do Programa!!!");

getch();

break;

default:

printf("\nOpção Inválida ");

break;

}

n++;

}while(R!='E');

printf("\nMaior consumo: %.2f Menor consumo: %.2f",ma,me);

getch();

free(v);

}

void cadastra(struct veiculo *v,int n)

{

clrscr();

printf("\n Veiculo: ");

scanf("%d",&v[n].id);

printf("\n Consumo: ");

scanf("%f",&v[n].consumo);

}

void verifica(struct veiculo *v,int n,float *ma,float *me)

{

int i;

for (i=0;i<n;i++)

{

if (v.consumo>=ma)

{

ma=v[n].consumo;

}

if (v.consumo<=me)

{

me=v[n].consumo;

}

}

}

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

float ma,me;
ma=me=0;
o primeiro deles, na função main(), tu não podes atribuir um valor inteiro a uma variavel do tipo float. creio que fazendo
ma=me=0.0;

funcione...

posta os outro erros que devem ser algo do tipo, se puderes postar a linha tb, melhor.

Link para o comentário
Compartilhar em outros sites

  • 0

& se refere a um endereço de memoria e * se refere ao valor armazenado em um endereço de memoria.

cara, te aconselho a testar, se tu não for tentando, tu nunca vai aprender a mexer direito com ponteiros. demora um pouco para que tu tenha um certo dominio sobre eles...

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...