C++ странный вывод при сложении целых чисел или удвоений вместе

У меня проблема с добавлением числовых типов вместе в С++, и я не могу понять, почему это происходит, я ожидаю, что когда я введу 3 балла для боулинга вместе, я получу 9 или 9,00, вместо этого я получаю что-то сумасшедшее, например 3.31748e + 258, что я делаю неправильный? любая помощь будет иметь большое значение спасибо!

#include<iostream>
#include<cmath>
#include <iomanip>
#include <cstdio>   
#include <cstdlib>

using namespace std;

int main()
{
/*Coordinate variables*/
double bowlTotal;
double bowlScore;  
const int FIVE_PLAYERS = 5;

for( int players = 0; players < FIVE_PLAYERS ; players++ )
{
    cout << "Player " << players + 1 << endl << endl;

    for( int games = 0; games < 3; games++ )
    {

     double score;
     score = 0;

     cout << "Please enter score for game #" << games + 1<< ": ";
     cin >> score;
     cout << endl;

     bowlTotal += score;
    } 


     cout << endl << endl <<"The final score for player #"<< players + 1 << " = " << bowlTotal << endl << endl;
     bowlScore += bowlTotal;
}
cout << endl << endl <<"The final team score = " << bowlScore << endl << endl;

system("PAUSE");
return 0;
}

person Edmund Rojas    schedule 30.01.2013    source источник


Ответы (2)


Вам нужно инициализировать свои переменные до 0, прежде чем использовать их, как показано ниже.

double bowlTotal = 0.0;
double bowlScore = 0.0;  

Обычно компилятор не будет делать это за вас, и переменные будут заполнены фактически мусорными значениями, к которым вы добавляете свои оценки.

Как кратко выразился GManNickG, чтение неинициализированного переменная имеет неопределенное поведение.

person Karthik T    schedule 30.01.2013
comment
Говоря более формально, чтение неинициализированной переменной является неопределенным поведением. - person GManNickG; 30.01.2013
comment
Потрясающий! Спасибо за помощь! знал, что это что-то очень глупое, лол - person Edmund Rojas; 30.01.2013

Вы не инициализировали bowlTotal или bowlScore, поэтому они содержат мусор.

person OldProgrammer    schedule 30.01.2013