将整数或双精度相加时C++奇怪的输出



我在 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;
}

在使用变量之前,您需要将变量初始化为 0,如下所示。

double bowlTotal = 0.0;
double bowlScore = 0.0;  

通常编译器不会为您执行此操作,并且变量将填充有效的垃圾值,您将分数添加到其中。

正如GManNickG简洁地指出的那样,读取未初始化的变量是未定义的行为

您没有初始化 bowlTotal 或 bowlScore,因此它们包含垃圾。

相关内容

  • 没有找到相关文章

最新更新