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