Ir ao conteúdo

Posts recomendados

Postado

Boa noite Pessoal, estou com dificuldade em concluir um algoritmo é um trabalho de faculdade e confesso que não é meu forte, estou estudando algumas literaturas mas ainda não obtive sucesso, espero que possam me ajudar, pois preciso concluir o quanto antes, segue exercício e o que já elaborei:

 

/* 4 - Página 62
Ao completar o tanque de combustível de um automóvel, faça algoritmos que calcule o CONSUMO EFETUADO, assim como a AUTONOMIA que o
carro teria antes do abastecimento. Considere que o veículo sempre seja abastecido até encher o tanque, a quantidade de litros abastecidos
e a quilometragem percorrida desde o último abastecimento.*/

 

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <math.h>

// Qual o consumo efetuado?
// Qual a autonomia que ainda teria antes do abastecimento?
// CT = Capacidade do Tanque;
// QLA = Quantidade de Litros Abastecidos;
// QP = Quilometragem Percorrida;
// C = Consumo
// AF = Autonomia Futura
// ST = Sobra Tanque
main()
{
    system ("color 0E");
    setlocale(LC_ALL, "Portuguese");
    int CT, QLA, QP, C, ST, AF;
    printf("Digite a capacidade do tanque em Litros: ");
    scanf("%i: L", &CT);
    printf("Digite a Quantidade de Litros Abastecidos: ");
    scanf("%i: L",&QLA);
    printf("Digite a quilometragem percorrida desde o último abastecimento:");
    scanf("%i : km", &QP);
    if (C = QLA / QP)
    {
    printf("Consumo efetuado é de:  = %i lts/km \n", &C);
    }
    if (ST = CT - QLA)
    {
    printf ("Sobrou %i: L de combustível no tanque", &ST);
    }
    if (AF = ST/ C)
    {
    printf ("Autonomia que ainda teria é de: = %i \n", &AF);
    }
}

Postado

Boa noite, nesse caso não é necessário usar if, apenas faça o cálculo e mostre o resultado. Porém, veja o que acontece quando você faz isso:

if (AF = ST/ C), você está executando o programa nessa ordem:

 

1) o if executa a operação em vez de verificar uma condição.

2) ST divide por C (operação)

3) AF obtém o resultado de ST/C (operação)

 

você poderia executar normalmente acima, mas é inutil, a não ser que você use o AF posteriormente ou/e tenha uma condição no if, como:

if((AF = ST/C) <= 5){

if( AF == 5 ) {...}

}

 

Enfim, tire os if's e use normalmente:

C = QLA / QP;
printf("Consumo efetuado é de:  = %i lts/km \n", C);// Se usar & ira mostrar o endereço não o valor
ST = CT - QLA;
printf ("Sobrou %i: L de combustível no tanque", ST);
AF = ST/ C;
printf ("Autonomia que ainda teria é de: = %i \n", AF);

 

P.S: Respondi, presumindo que os cálculos estavam certos...

Postado

Boa noite, obrigada pelas dicas, tentei com e sem o if, porém o programa parece que entra em uma loop infinita, ele carrega e mas não conclui vou anexar as imagens para melhor compreensão, veja o que acontece:59ab519b43cfd_DEVC.JPG.77c8510218f8b88965ae6f339f1ae355.JPG

A partir desta linha ele só continua se digitar um número a mais, e depois ele faz o cálculo mas errado.

59ab51a213407_DEVC.2.JPG.afffb79e55b0123f21e7518b897bc990.JPG

Postado

Tenta usar o scanf apenas para obter os inteiros pois quando usa letras ou simbolos no scanf ele usa como parte o valor recebido, use em todos: 
    scanf("%i", &QP);

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!