DsB Posted November 15, 2009 at 10:06 AM Report Share #296271 Posted November 15, 2009 at 10:06 AM 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 More sharing options...
JD557 Posted November 15, 2009 at 12:10 PM Report Share #296281 Posted November 15, 2009 at 12:10 PM 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 More sharing options...
DsB Posted November 15, 2009 at 12:31 PM Author Report Share #296284 Posted November 15, 2009 at 12:31 PM Bem visto, podia ficar aqui horas e mais horas coisa tão básica, obrigado. Link to comment Share on other sites More sharing options...
JD557 Posted November 15, 2009 at 03:37 PM Report Share #296314 Posted November 15, 2009 at 03:37 PM 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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now