1

我有一个我想不通的问题。我对编程有点陌生。这是我写的代码。这是我得到的错误“错误C4700:未初始化的局部变量'lowest'used”我不知道如何解决它。我也确信有更好的方法来编写这个程序,但这是我必须遵循的要求。我如何解决我得到的错误?

#include "stdafx.h"
#include "iostream"
#include <iomanip>

using namespace std;

//Function prototypes
void getScore(int &score);
int findLowest(int score1, int score2, int score3, int score4, int score5, int &lowest);
void calcAverage(int score1, int score2, int score3, int score4, int score5);


int main ()
{
cout<<"Average with Lowest Score Drop by John\n"<<endl; 
int score1, 
    score2, 
    score3, 
    score4, 
    score5,
    lowest;

    getScore(score1);
    getScore(score2);
    getScore(score3);
    getScore(score4);
    getScore(score5);

    calcAverage(score1, score2, score3, score4, score5);


    cin.get();
    cin.get();
return 0;
}

void getScore(int &score)
{

cout << "Please enter 5 test scores between 1 and 100): ";
cin >> score;

while (score <= 0 || score >= 100)
{
    cout << "Enter a score values of 0 to 100";
    cin >> score;
}
}

int findLowest(int score1, int score2, int score3, int score4, int score5, int &lowest)
{
lowest = score1;
if (score2 < lowest)
    lowest = score2;
else if (score3 < lowest)
    lowest = score3;
else if (score4 < lowest)
    lowest = score4;
else if (score5 < lowest)
    lowest = score5;

cout << "The lowest test score is " << lowest << endl;

return lowest;
}

void calcAverage (int score1, int score2, int score3, int score4, int score5)

{
int findLowest(int, int, int, int, int, int);
int lowest;
double average;
 findLowest(score1, score2, score3, score4, score5, lowest);


average = (((float)score1 + score2 + score3 + score4 + score5) - lowest) / 4.0;
//cout << setw(4);
cout << fixed << showpoint << setprecision(2);
cout <<" With the grade "<<lowest<< " dropped"<<"The average of test scores entered is: " << average << endl;
} 
4

2 回答 2

1

findLowest里面的原型calcAverage不见了&

void calcAverage (int score1, int score2, int score3, int score4, int score5)
{
    int findLowest(int, int, int, int, int, int&);
    //                                         ^
    ....
}

实际上,你不需要那个原型,因为在main函数之前已经有相同的原型了。

于 2013-09-05T04:05:16.807 回答
0

我只是偶然发现了你的问题。答案似乎很明显。看看你的最后几行:` void calcAverage (int score1, int score2, int score3, int score4, int score5)

{
int findLowest(int, int, int, int, int, int);
int lowest;
double average;
 findLowest(score1, score2, score3, score4, score5, lowest);


average = (((float)score1 + score2 + score3 + score4 + score5) - lowest) / 4.0;
//cout << setw(4);
cout << fixed << showpoint << setprecision(2);
cout <<" With the grade "<<lowest<< " dropped"<<"The average of test scores entered is: " << average << endl;
} `

这里int lowest没有初始化。尝试编写int lowest(0);适合您需要的或类似的初始值。

于 2014-02-05T13:25:46.053 回答