错误 C4700:使用未初始化的局部变量'lowest'
error C4700: uninitialized local variable 'lowest' used
我有个问题想不通。我对编程有点陌生。这是我写的代码。这是我得到的错误"错误C4700:使用了未初始化的局部变量'lowest'"我不确定如何修复它。我也确信有更好的方法来编写这个程序,但这是我必须遵循的要求。我该如何修复我得到的错误?
#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 Johnn"<<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;
}
calcAverage
内的findLowest
原型缺少&
:
void calcAverage (int score1, int score2, int score3, int score4, int score5)
{
int findLowest(int, int, int, int, int, int&);
// ^
....
}
实际上,您不需要那个原型,因为在main
函数之前已经有了相同的原型。
我刚刚偶然发现了你的问题。答案似乎显而易见。看看你的最后几行:`void calcAverage(int score1,int score2,int score 3,int scores 4,int scored 5)
{
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);
或类似的初始值,以满足您的需求。
相关文章:
- 使用的未初始化局部变量'Quick'
- 修复未初始化的局部变量错误
- 局部变量保留函数中的值
- 如何使用 C++ 中的继承函数访问派生类中的局部变量
- 将引用分配给局部变量,如果局部变量超出范围,它会超出范围吗?
- Gnuplot_i.hpp C++接口绘制局部变量而不是文件
- 如何在函数外部访问函数中局部变量的值?
- 赋予全局变量而不是局部变量优先级的函数 - (异常行为)
- C++中静态方法的局部变量范围
- 未初始化的局部变量错误甚至认为我初始化了它(C++)
- 离开范围后如何保护局部变量的值?
- 局部变量名称冲突
- C++ lambda:如何'freeze'局部变量的值?
- 我应该使我的局部变量常量还是可移动的
- 获取具有静态局部变量的绑定/推断捕获 lambda 的函数指针
- 全局和局部变量初始化与 constexpr 的差异背后的基本原理
- 返回对局部变量 - C++ 的引用
- 是否可以影响 C++ 中回调函数的局部变量?
- 警告 C4101 未引用的局部变量
- 错误 C4700:使用未初始化的局部变量'lowest'