Jump to content

Média


DsB
 Share

Recommended Posts

Bom dia, estou a dar os primeiros passos em c++ mas estou com algumas dificuldades em perceber como isto funciona por isso preciso da ajuda da comunidade.

Tenho Eclipse + CDT + MinGw(Compilador)

Fiz uma pequena aplicação para calcular Médias mas o resultado é estranho quando uso os seguintes valores(10+10+20+20+15+16.5)/6, o resultado final desta expressão é 16.3!!! e deveria ser 15.25, não faço ideia onde está o erro, segue o código para melhor análise:

#include <iostream>

using namespace std;

double calcularMedia(int sentinel);

int main(){

double media=0.0;

cout << "Bem vindo à calculadora de médias." << endl;

media=calcularMedia(-1);
cout << "A média é: " << media << endl;

return 0;
}

//Função que permite calcular a média

double calcularMedia(int sentinel){

double valores=0,valor=0;
int num=0;

cout << "Introduza nota(Para terminar -1):" << endl;
cin >> valor;

while(true){

	cout << "Introduza nota(Para terminar " << sentinel << "):" << endl;
	cin >> valor;

	if (valor==sentinel) break;

	valores+=valor;
	num++;

	}

	return (double)valores/num;
}
Link to comment
Share on other sites

Não estas a contar o primeiro valor 🙂

Tenta:

double calcularMedia(int sentinel){

  double valores=0,valor=0;

  int num=1;

  cout << "Introduza nota(Para terminar -1):" << endl;

Ou tira o input que está fora do loop, visto ser esse o principal problema.

  cin >> valores;

MIEIC @ FEUP

http://project557.blogspot.com/ --- Development Blog

Proteja a sua pen: http://lastknight.pt.vu

Link to comment
Share on other sites

São coisas que acontecem 🙂

De qualquer das formas, quando ficares encalhado num erro desses que consigas, pega numa folha de papel (ou usa a memória, em casos mais simples) e vai executando o algoritmo no papel, anotando o valor das variáveis. Pelo menos a mim costuma-me ajudar a apanhar esses pequenos erros

MIEIC @ FEUP

http://project557.blogspot.com/ --- Development Blog

Proteja a sua pen: http://lastknight.pt.vu

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.