试图计算数组中随机数的最大值和最小值,我不确定我在这里做错了什么。我一直在努力弄清楚,但我无能为力。也许你们中有人可以提供帮助?
#include <iostream>
#include <stdlib.h>
#include <ctime>
using namespace std;
int main() {
int *sora;
int num;
int min;
int max;
cout<< "Enter the size : " ;
cin >> num;
cout<< endl;
sora = new int [num];
max= sora[0];
min= sora[0];
srand((unsigned)time(0));
for(int x=0;x<num; x++) {
sora[x]=rand()%100;
if(min > sora[x]) {
min=sora[x];
}
else if (max < sora[x]) {
max=sora[x];
}
cout<< sora[x] << endl;
}
cout<< "Maximum value is: " << max << endl << "Minimum value is: " << min;
}
最佳答案
if(min > sora[x]) {
min=sora[x];
}
else if (max < sora[x])
{
max=sora[x];
}
有问题。第二个else if
仅当满足第一个 if 时才输入语句。但是第二个if
必须始终执行。请按如下方式更改上面的 block
if(min > sora[x]) {
min = sora[x];
}
if (max < sora[x]) {
max = sora[x];
}
并且您还使用未初始化的区域进行比较。如果您只使用正数
max = 0;
min = UINT_MAX;
如果你也使用负数,那么
max = INT_MIN;
min = INT_MAX;
您必须包括 <limits.h>
对于这些宏。
关于c++ - 最大输出不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22089713/