C++:求最大值、最小值、总和和平均值
C ++: Finding the Maximum, Minimum, Sum and Average
我目前正在为我的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
编辑 7/13/19:
这些是我对代码所做的更改,以使其正常工作。
#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
。
顺便说一句:你可能应该重新考虑你计算平均值的方式......
最大值和总和应该没问题。
您正在寻找最大值而不是最小值,因为要使值成为新的最小值,它应该小于当前最小值,因此它应该是:
...
if (userVals[i] < minVal) {
...
而不是:
...
if(userVals[i] > minVal){
...
对于平均值,您应该将总和除以ARRAY_SIZE。
还要小心,因为您没有初始化用户Vals。
标准库提供了算法标头中所需的一切。
若要查找最小值和最大值,请使用 std::minmax_element。
要查找总和,请使用 std::累加。
要找到平均值,请使用 std::累加并除以元素数。
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- 使用递归的数组的最小值.这是怎么回事
- 如何创建一个函数来计算并返回平均值、最大值和最小值
- 在二维数组中查找最小值和最大值?
- 有没有办法使用递归函数找到数组中最小值的 INDEX?C++
- 程序以使用 C++ 中的 while 循环查找一组数字的最小值
- 查找数组中第一个最小值和最后一个最大值元素之间的算术平均值
- C++ 函数,用于查找传入的 N 个数字的平均值、总和、最小值和最大值
- txt 文件中浮点数的最大和最小值
- 余数运算符的等效操作,用于处理低于允许的最小值
- 需要使用模板查找数组的第二个最小和最小值
- C++数组的最大值、最小值、平均值函数
- 负值的总和、平均值、最小值、最大值和总数
- 获取最大值、平均值和最小值
- 查找序列的最小值/最大值/平均值(以C++为单位)
- 最小值和最大值的平均值
- 如何找到向量的统计量?最大值/最小值、模式、中位数、平均值
- 查找输入值的平均值、最大值和最小值
- 用于查找最小值、最大值、平均值、中值和模式的程序
- C++循环查找用户输入的最小值、最大值、平均值和总和