C++ 程序未生成正确的值-C++;

C++ 程序未生成正确的值-C++;,c++,C++,我一直在尝试做一个GPA计算器作为练习。该程序进行编译,但在计算平均值时,返回一个值,如-5.16205e+300。然而,在计算每个for循环中的平均值之后,如果我把cout单位放进去; 开关(单位){ 案例0: { cout-5.16205e+300可能您忘记初始化一个或多个类似的变量:双数,求和,平均;。请注意,局部变量不会自动设置为0。它们将有一个不确定的值被视为随机垃圾。@drescherjm就是这样做的!非常感谢您!它没有接管整个过程有什么原因吗来自cin的值?sum+=num;wit

我一直在尝试做一个GPA计算器作为练习。该程序进行编译,但在计算平均值时,返回一个值,如-5.16205e+300。然而,在计算每个for循环中的平均值之后,如果我把cout单位放进去; 开关(单位){ 案例0: {
cout
-5.16205e+300
可能您忘记初始化一个或多个类似的变量:
双数,求和,平均;
。请注意,局部变量不会自动设置为0。它们将有一个不确定的值被视为随机垃圾。@drescherjm就是这样做的!非常感谢您!它没有接管整个过程有什么原因吗来自cin的值?
sum+=num;
with
sum
以随机垃圾数开始什么是sum+num?
#include <iostream>
#include <string>

using namespace std;

int main(){
    {
        string ordinal, l_grade;
        int units;
        double num, sum, avg;

        cout << "How many units (maximum of 5)?: ";
        cin >> units;

        switch(units){
        case 0:
        {
            cout << "Can't calculate GPA with 0 units.";
        } break;

        case 1:
        {
            for(int i = 1; i <= units; i++){
                {
                    switch(i){
                        case 1:
                        ordinal = "first";
                        break;
                    }
                    cout << "Enter your " << ordinal << " letter grade: ";
                    cin >> l_grade;

                    if (l_grade == "A" || l_grade == "a"){
                        num = 4.00;
                    } else if(l_grade == "A-" || l_grade == "a-"){
                        num = 3.67;
                    } else if(l_grade == "B+" || l_grade == "b+"){
                        num = 3.33;
                    } else if(l_grade == "B" || l_grade == "b"){
                        num = 3.00;
                    } else if(l_grade == "B-" || l_grade == "b-"){
                        num = 2.67;
                    } else if(l_grade == "C+" || l_grade == "c+"){
                        num = 2.33;
                    } else if(l_grade == "C" || l_grade == "c"){
                        num = 2.00;
                    } else if(l_grade == "C-" || l_grade == "c-"){
                        num = 1.67;
                    } else if(l_grade == "D+" || l_grade == "d+"){
                        num = 1.33;
                    } else if(l_grade == "D" || l_grade == "d"){
                        num = 1.00;
                    } else if(l_grade == "F" || l_grade == "f"){
                        num = 0.00;
                    } else cout << "You entered an invalid letter grade.";
                }
                sum += num;
                avg = sum / units;
            }
            cout << "Your average is " << avg;
        } break;

        case 2:
        {
            for(int i = 1; i <= units; i++){
                {
                    switch(i){
                        case 1:
                        ordinal = "first";
                        break;

                        case 2:
                        ordinal = "second";
                        break;
                    }
                    cout << "Enter your " << ordinal << " letter grade: ";
                    cin >> l_grade;

                    if (l_grade == "A" || l_grade == "a"){
                        num = 4.00;
                    } else if(l_grade == "A-" || l_grade == "a-"){
                        num = 3.67;
                    } else if(l_grade == "B+" || l_grade == "b+"){
                        num = 3.33;
                    } else if(l_grade == "B" || l_grade == "b"){
                        num = 3.00;
                    } else if(l_grade == "B-" || l_grade == "b-"){
                        num = 2.67;
                    } else if(l_grade == "C+" || l_grade == "c+"){
                        num = 2.33;
                    } else if(l_grade == "C" || l_grade == "c"){
                        num = 2.00;
                    } else if(l_grade == "C-" || l_grade == "c-"){
                        num = 1.67;
                    } else if(l_grade == "D+" || l_grade == "d+"){
                        num = 1.33;
                    } else if(l_grade == "D" || l_grade == "d"){
                        num = 1.00;
                    } else if(l_grade == "F" || l_grade == "f"){
                        num = 0.00;
                    } else cout << "You entered an invalid letter grade.";

                }
                sum += num;
                avg = sum / units;
            }
            cout << "Your average is " << avg;
        } break;

        case 3:
        {
            for(int i = 1; i <= units; i++){
                {
                    switch(i){
                        case 1:
                        ordinal = "first";
                        break;

                        case 2:
                        ordinal = "second";
                        break;

                        case 3:
                        ordinal = "third";
                        break;
                    }
                    cout << "Enter your " << ordinal << " letter grade: ";
                    cin >> l_grade;

                    if (l_grade == "A" || l_grade == "a"){
                        num = 4.00;
                    } else if(l_grade == "A-" || l_grade == "a-"){
                        num = 3.67;
                    } else if(l_grade == "B+" || l_grade == "b+"){
                        num = 3.33;
                    } else if(l_grade == "B" || l_grade == "b"){
                        num = 3.00;
                    } else if(l_grade == "B-" || l_grade == "b-"){
                        num = 2.67;
                    } else if(l_grade == "C+" || l_grade == "c+"){
                        num = 2.33;
                    } else if(l_grade == "C" || l_grade == "c"){
                        num = 2.00;
                    } else if(l_grade == "C-" || l_grade == "c-"){
                        num = 1.67;
                    } else if(l_grade == "D+" || l_grade == "d+"){
                        num = 1.33;
                    } else if(l_grade == "D" || l_grade == "d"){
                        num = 1.00;
                    } else if(l_grade == "F" || l_grade == "f"){
                        num = 0.00;
                    } else cout << "You entered an invalid letter grade.";
                }
                sum += num;
                avg = sum / units;
            }
            cout << "Your average is " << avg;
        } break;

        case 4:
        {
            for(int i = 1; i <= units; i++){
                {
                    switch(i){
                        case 1:
                        ordinal = "first";
                        break;

                        case 2:
                        ordinal = "second";
                        break;

                        case 3:
                        ordinal = "third";
                        break;

                        case 4:
                        ordinal = "fourth";
                        break;
                    }
                    cout << "Enter your " << ordinal << " letter grade: ";
                    cin >> l_grade;

                    if (l_grade == "A" || l_grade == "a"){
                        num = 4.00;
                    } else if(l_grade == "A-" || l_grade == "a-"){
                        num = 3.67;
                    } else if(l_grade == "B+" || l_grade == "b+"){
                        num = 3.33;
                    } else if(l_grade == "B" || l_grade == "b"){
                        num = 3.00;
                    } else if(l_grade == "B-" || l_grade == "b-"){
                        num = 2.67;
                    } else if(l_grade == "C+" || l_grade == "c+"){
                        num = 2.33;
                    } else if(l_grade == "C" || l_grade == "c"){
                        num = 2.00;
                    } else if(l_grade == "C-" || l_grade == "c-"){
                        num = 1.67;
                    } else if(l_grade == "D+" || l_grade == "d+"){
                        num = 1.33;
                    } else if(l_grade == "D" || l_grade == "d"){
                        num = 1.00;
                    } else if(l_grade == "F" || l_grade == "f"){
                        num = 0.00;
                    } else cout << "You entered an invalid letter grade.";
                }
                sum += num;
                avg = sum / units;
            }
            cout << "Your average is " << avg;
        } break;

        case 5:
        {
            for(int i = 1; i <= units; i++){
                {
                    switch(i){
                        case 1:
                        ordinal = "first";
                        break;

                        case 2:
                        ordinal = "second";
                        break;

                        case 3:
                        ordinal = "third";
                        break;

                        case 4:
                        ordinal = "fourth";
                        break;

                        case 5:
                        ordinal = "fifth";
                        break;
                    }
                    cout << "Enter your " << ordinal << " letter grade: ";
                    cin >> l_grade;

                    if (l_grade == "A" || l_grade == "a"){
                        num = 4.00;
                    } else if(l_grade == "A-" || l_grade == "a-"){
                        num = 3.67;
                    } else if(l_grade == "B+" || l_grade == "b+"){
                        num = 3.33;
                    } else if(l_grade == "B" || l_grade == "b"){
                        num = 3.00;
                    } else if(l_grade == "B-" || l_grade == "b-"){
                        num = 2.67;
                    } else if(l_grade == "C+" || l_grade == "c+"){
                        num = 2.33;
                    } else if(l_grade == "C" || l_grade == "c"){
                        num = 2.00;
                    } else if(l_grade == "C-" || l_grade == "c-"){
                        num = 1.67;
                    } else if(l_grade == "D+" || l_grade == "d+"){
                        num = 1.33;
                    } else if(l_grade == "D" || l_grade == "d"){
                        num = 1.00;
                    } else if(l_grade == "F" || l_grade == "f"){
                        num = 0.00;
                    } else cout << "You entered an invalid letter grade.";
                }
                sum += num;
                avg = sum / units;
            }
            cout << "Your average is " << avg;
        } break;

        default:
        {
            cout < "You entered an invalid number.";
        } break;
    }
}
return  0;