c++ - C++:求最大值、最小值、总和和平均值
问题描述
我目前正在为我的 C++ 类编写一些代码,但我找不到我做错了什么。我的代码不会输出正确的数值。我的代码应该能够找到任何集合数字数组的最大值、最小值、总和和平均值。
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main() {
const int ARRAY_SIZE = 12; // number of elements
int userVals[ARRAY_SIZE];// Array of input numbers
int numArray[] ={24, -5, 72, 104, 0, 5, 89, -225, 19, 17, 16,
81};//Elements
int i; // loop index
int maxVal; // Max Value
int minVal; // Min Value
int sumVal; // Sum Value
int aveVal; // Average Value
sumVal = 0; //* Sum Value
for (i = 0; i < ARRAY_SIZE; ++i) {
sumVal = sumVal + userVals[i];
}
cout << " Sum Value: " << sumVal << endl;
maxVal = userVals[0];//* Max Value
for (i = 0; i < ARRAY_SIZE; ++i) {
if (userVals[i] > maxVal) {
maxVal = userVals[i];
}
}
cout << " Max Value: " << maxVal << endl;
minVal = userVals[0];//* Min Value
for (i = 0; i < ARRAY_SIZE; ++i) {
if (userVals[i] > minVal) {
minVal = userVals[i];
}
}
cout << " Min Value: " << minVal << endl;
aveVal = userVals[0];//* Average Value
for (i = 0; i < ARRAY_SIZE; ++i) {
aveVal = aveVal + userVals[i];
}
cout << " Average Value: " << aveVal << endl;
return 0;
}
就像我上面所说的,我的代码应该能够找到任何集合数字数组的最大值、最小值、总和和平均值。目前,当我运行我的代码时,它会输出以下结果:
总和值:447815718
最大值:914973176
最小值:914973176
平均值:1362788894
2019 年 7 月 13 日编辑:
这些是我对代码所做的更改以使其正常工作。
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main() {
const int ARRAY_SIZE = 12; // number of elements
int userVals[ARRAY_SIZE];// Array of input numbers
int numArray[] ={24, -5, 72, 104, 0, 5, 89, -225, 19, 17, 16, 81}; //
Elements
int i; // loop index
int maxVal; // Max Value
int minVal; // Min Value
int sumVal; // Sum Value
int aveVal; // Average Value
sumVal = 0; //* Sum Value
for (i = 0; i < ARRAY_SIZE; ++i) {
sumVal = sumVal + numArray[i];
}
cout << " Sum Value: " << sumVal << endl;
maxVal = numArray[0];//* Max Value
for (i = 0; i < ARRAY_SIZE; ++i) {
if (numArray[i] > maxVal) {
maxVal = numArray[i];
}
}
cout << " Max Value: " << maxVal << endl;
minVal = numArray[0];//* Min Value
for (i = 0; i < ARRAY_SIZE; ++i) {
if (numArray[i] < minVal) {
minVal = numArray[i];
}
}
cout << " Min Value: " << minVal << endl;
aveVal = numArray[0];//* Average Value
for (i = 0; i < ARRAY_SIZE; ++i) {
if (aveVal = numArray[0] + numArray[1] + numArray[2] + numArray[3] +
numArray[4] + numArray[5] + numArray[6] + numArray[7] +
numArray[8] + numArray[9] + numArray[10] + numArray[11])
aveVal = aveVal / 12;
}
cout << " Average Value: " << aveVal << endl;
return 0;
}
解决方案
在您的代码中,您指的是userVals
,它永远不会被初始化。改为使用numArray
。
顺便说一句:您可能应该重新考虑计算平均值的方式...
推荐阅读
- apollo - 无法使用 gradlew 命令下载 json 架构
- python - 'add_comment_to_post' 不是有效的视图函数或模式名称
- android - 从多个适配器访问片段中的方法?
- optimization - python代码的Cython实现——发现阻碍速度提升的主要问题
- python - 错误:不能在类似字节的对象上使用字符串模式
- flutter - 为什么我应该避免在 getter 和 setter 中包装字段?
- mongodb - 在 python 中编码时无法使用字符串设置数据库
- reactjs - 无法使用 Flask-JWT-Extended、React 和 Axios 在 Chrome 中设置 cookie
- javascript - 如何仅使用 JavaScript 创建 DIV onclick?
- python-3.x - Tkinter 显示类列表文本