c++ - 最大输出不正确

标签 c++ random max min

试图计算数组中随机数的最大值和最小值,我不确定我在这里做错了什么。我一直在努力弄清楚,但我无能为力。也许你们中有人可以提供帮助?

#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/

相关文章:

C++动态字符串数组

c++ - 在 C++ 中测量时间

C++ 友元函数引用

mysql - SQL从数据库中选择具有最大值的行并按2列分组

sql - 如何计算Oracle SQL select中两个数字的最大值?

c++ - 关于CRTP静态多态的困惑

php - PHP mt_rand 种子如何?

c++ - 在Base 10 C++中显示1024位二进制数

python - 获取元组列表中 float 的最大值?

python - 为什么 random.seed() 在生成数据集时不起作用?