c - 4 功能找到最低/最高位置和值(value)

标签 c arrays function max min

我没有得到正确的值,我错过了什么?我的另一台 PC 上有类似的代码,它似乎可以工作。已经进行了几个小时的分析,据我所知,一切看起来都不错,但我肯定遗漏了一些东西。 我得到最大数量 = 22,最大位置 = 0,最小数量 = 22,最小位置 = 2

#include <stdio.h>

int findMaxPos(int *numbers, int length);
int findMinPos(int *numbers, int length);

int findMax(int *numbers, int length);
int findMin(int *numbers, int length);

int main()
{
    int arr[] = { 100, 50, 20, 35 , 25, 22};

    printf("Max number = %d\nMax pos = %d\nMin number = %d\nMin position = %d", findMax(arr, 6), findMaxPos(arr, 6), findMin(arr, 6), findMinPos(arr, 6));
    getchar();

    return 0;
}

int findMaxPos(int *numbers, int length) {
    int maxPos = 0;

    for (int i = 0; i < length; i++)
    {
        if (numbers[i] > numbers[maxPos])
            maxPos = i;
    }
    return maxPos;
}

int findMinPos(int *numbers, int length)
{
    int minPos = 0;

    for (int i = 0; i < length; i++)
    {
        if (numbers[i] < numbers[minPos])
            minPos = i;
    }

    return minPos;
}

int findMax(int *numbers, int length) {

    int maxNr = numbers[0];

    for (int i = 0; i < length; i++)
    {
        if (numbers[i] > maxNr);
        maxNr = numbers[i];
    }

    return maxNr;
}

int findMin(int *numbers, int length)
{
    int minNr = numbers[0];

    for (int i = 0; i < length; i++)
    {
        if (numbers[i] < minNr);
        minNr = numbers[i];
    }

    return minNr;
}

最佳答案

findMaxfindMin 中的 if 之后有一个额外的 ; :

if (numbers[i] > maxNr);

删除 ; :

if (numbers[i] > maxNr)

关于c - 4 功能找到最低/最高位置和值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43736784/

相关文章:

java - 设置传递给函数的数组变量

python - 为什么在 logging.info 中显示名称错误?

javascript - 也可以在另一个函数中使用在 select 标记中声明的 onchange 函数元素吗?

c - 为什么我用 C 编写的以下 getString() 函数不起作用?

c - 奇怪的输出?

c++ - 无法填充动态类模板数组

c - OpenCL。数组寻址/指针的奇怪错误

c - 两个 unsigned char * 值之间的指针转换警告

c++ - std::vector<std::string> 到 char* 数组

c++ - 数组比 vector 有什么优势?