求数组最大值结果不对,输出很奇怪,求大佬解答

#include <iostream>
using namespace std;

int getmax(int arr[])
{
    int i = 0;
    int max = 0;
    max = arr[0];
    for (i = 0; i < 16; i++) {
        max = (max > arr[i]) ? max : arr[i];
    }
    return arr[i];
}
int getmin(int arr[])
{
    int i = 0;
    int j = 0;
    for (i = 0; i < 16; ++i) {
        if (arr[i] < arr[j])
        {
            arr[j] = arr[i];
        }
    }
    return arr[j];
}
int main() {
    int n = 0;
    int scores[] = { 16,15,85,89,79,78,99,100,85,97,87 };
    n = sizeof(scores) / sizeof(int);
    cout << "学生数:" << n << endl;
    cout << "最高分是:" << getmax(scores) << endl;

    cout << "最低分是:" << getmin(scores) << endl;

    return 0;

#include <iostream>
using namespace std;

int getmax(int arr[])
{
    int i = 0;
    int max = 0;
    max = arr[0];
    for (i = 0; i < 11; i++) {
        max = (max > arr[i]) ? max : arr[i];
    }
    return max;
}
int getmin(int arr[])
{
    int i = 0;
    int min = 0;
    min = arr[0];
    for (i = 0; i < 11; i++) {
        min = (min < arr[i]) ? min : arr[i];
    }
    return min;
}
int main() {
    int n = 0;
    int scores[] = { 16,15,85,89,79,78,99,100,85,97,87 };
    n = sizeof(scores) / sizeof(int);
    cout << "学生数:" << n << endl;
    cout << "最高分是:" << getmax(scores) << endl;

    cout << "最低分是:" << getmin(scores) << endl;

    return 0;
}

我来看看,数组不能越界。还有你求最小也不对。

是    return max;
不是arr[i]

max = (max > arr[i]) ? max : arr[i];改为小于号

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

 

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y