• 0
Sign in to follow this  
Natalie M.

Ajuda

Question

O programa recebe como entrada os quilômetros rodados e os litros gastos para cada tanque. Calcula e exibe os quilômetros por litro obtidos para cada tanque.

O problema é que após exibir o resultado ele continua perguntando várias vezes, mesmo depois de eu ter digitado -1, que é o comando que deveria finalizar. Como resolvo isso?

Depois de resolver esse problema, tenho que fazer outras coisas:

"Depois de processar todas as informações fornecidas, o programa deve calcular e imprimir os quilômetros por litro obtidos por todos os tanques combinados (média)."

Como armazeno as informações anteriores, sendo que não há um número de entradas definido? Usei while, mas não consigo calcular a média, já que não sei quantas vezes o usuário informou, não sei pelo que dividir.

O que eu fiz:

#include <math.h>
#include <stdio.h>
#include <iostream>

using namespace std;

int main()
{
 int number1l = 0;
 int number2q = 0;
 int m1 = 0;

 while (number1l != -1) {
 printf ("Digite os litros usados (-1 para fim):\n");
 scanf ("%d",&number1l);

 printf ("Digite os quilômetros dirigidos:\n");
 scanf ("%d",&number2q);

 m1 = number2q / number1l;

 printf ("Os quilômetros/litro para esse tanque foram: ");
 printf ("\n%d", &m1);
 scanf ("%d",&m1);

}

 printf ("Média total:\n");
 average =  &m1;
 return 0;

}

Alguém pode me ajudar?

Share this post


Link to post
Share on other sites

6 answers to this question

Recommended Posts

  • 0

Boa tarde, Não entedi porque a passagem de endereço de memória de m1 para avarage (average = &m1;) e pra não ficar no loop infinito.

Na declaração das variaveis tira a atribuição 0 (ZERO) que vai funciona... e outra dica

esperimenta fazer com

do{

while(condição);

Share this post


Link to post
Share on other sites
  • 0

Tenta assim

#include <math.h>
#include <stdio.h>
#include <iostream>

using namespace std;

int main()
{
int number1l = 0;
int number2q = 0;
int m1 = 0;

while (number1l != -1) {
printf ("Digite os litros usados (-1 para fim):\n");
scanf ("%d",&number1l);
if (number1l == -1)
break;

printf ("Digite os quilômetros dirigidos:\n");
scanf ("%d",&number2q);

m1 = number2q / number1l;

printf ("Os quilômetros/litro para esse tanque foram: ");
printf ("\n%d", &m1);
scanf ("%d",&m1);

}

printf ("Média total:\n");
average =  &m1;
return 0;

}

Ou seja, adicionei o if, se for igual a -1 break (pare)

if (number1l == -1)

break;

abraços.

Share this post


Link to post
Share on other sites
  • 0

Obrigada pessoal, mas ainda tem um problema... :wacko:

Ficou assim:

#include <math.h>

#include <stdio.h>

#include <iostream>

using namespace std;

int main()

{

int number1l;

int number2q;

int m1;

while (number1l != -1) {

printf ("Digite os litros usados (-1 para fim):\n");

scanf ("%d",&number1l);

if (number1l == -1)

break;

printf ("Digite os quilômetros dirigidos:\n");

scanf ("%d",&number2q);

m1 = number2q / number1l;

printf ("Os quilômetros/litro para esse tanque foram:\n");

printf ("%d",&m1);

scanf ("%d",&m1);

}

printf ("Média total:\n");

printf ("%d",&m1);

return 0;

}

Mas continuo sem saber como calculo a média. :( Coloquei para mostrar o &m1, mas ele mostra a última média calculada, preciso que mostre a média total (cálculo envolvendo todas as médias informadas). Como faço isso?

Share this post


Link to post
Share on other sites
  • 0
Obrigada pessoal, mas ainda tem um problema... :wacko:

Ficou assim:

#include <math.h>

#include <stdio.h>

#include <iostream>

using namespace std;

int main()

{

int number1l;

int number2q;

int m1;

while (number1l != -1) {

printf ("Digite os litros usados (-1 para fim):\n");

scanf ("%d",&number1l);

if (number1l == -1)

break;

printf ("Digite os quilômetros dirigidos:\n");

scanf ("%d",&number2q);

m1 = number2q / number1l;

printf ("Os quilômetros/litro para esse tanque foram:\n");

printf ("%d",&m1);

scanf ("%d",&m1);

}

printf ("Média total:\n");

printf ("%d",&m1);

return 0;

}

Mas continuo sem saber como calculo a média. :( Coloquei para mostrar o &m1, mas ele mostra a última média calculada, preciso que mostre a média total (cálculo envolvendo todas as médias informadas). Como faço isso?

estou indo dormi amanhacedo eu resp

Share this post


Link to post
Share on other sites
  • 0

Para você mostrar o valor da variável no printf retirar o '&', senão você estará vendo o é o endereço da memória use float para armazenar a média senão você não obterá a média aproximada

mas existe erros de lógica também

Share this post


Link to post
Share on other sites
  • 0

Está funcionando agora, recebi ajuda por mensagem ^_^

Agora só falta passar para Perl, que é uma linguagem parecida com C/C++. Espero que eu consiga :unsure:

Edited by Natalie M.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this