它一直说标识符 "posi" 未定义

It keeps saying identifier "posi" is undefined

一直说标识符"posi"不知何故未定义,找了找也没找到类似的,有大神帮忙吗?代码在下面,我是编程新手,对c++不是很熟悉,不胜感激,谢谢。

#include "stdafx.h"
#include <iostream>
#include <math.h>

using namespace std;

const int num = 10;

int max[num], sum[num], min[num];
int total(int sum[], int num);
int maximum(int max[], int num, int posi[]);
int minimum(int min[], int num, int posi[]);

int main() {
    int i, pnum, psum, pmax, pmin;
    cout << "Give 10 positive integer values, one-by-one: " << endl;
    while (num > 0) {

        for (i = 0; i < 11; i++) {
            cout << "Enter Number" << i << ":";
            cin >> pnum;

        }

    }
    psum = total(sum, num);
    cout << "The sum is " << sum;
    cin >> sum[i];
    pmax = maximum(max, num, posi);
    cout << "The maximum value is " << max << ", and it is in position " << 
    posi << endl;
    cin >> max[i] >> posi[i];
    pmin = minimum(min, num, posi);
    cout << "The minimum value is " << min << ", and it is in position " << 
    posi << endl;
    cin >> min[i] >> posi[i];
    system ("pause");
    return 0;
    }

        int maximum(int max[], int num, int posi[]) {
        int posit = 0, maxi = 0, numb,i;
        maxi = numb;
        while (numb > 0) {
            for (i = 0; i < 11; i++) {
                if (numb > maxi) {
                    maxi = numb;
                    posit = i;

                }
                i = i + 1;
            }
            return maxi;
        }
        }

说它是未定义的,因为你从来没有定义过它。在此函数调用 pmax = maximum(max, num, posi); 中,您将 posi 传递给最大值,但您尚未定义它!调用 maximum 而不是 minimum 时出现错误的原因可能是编译器在遇到未定义的引用时停止编译。如果您删除对 maximum 的调用,当您尝试执行 cin >> max[i] >> posi[i]; 时,它会给您一个错误。如果您删除该行,那么当您调用 minimum, 等时它会给您一个错误。我建议查看一些基本的 C++ 教程,these ones are pretty good. Specifically the Variables and Types 部分。