为什么这个代码输不出来啊?

题目要求是输入数组元素个数,输入数组,然后把他排序,最后输出中值,用指针做,我输入了2 46,但是没有输出

#include <iostream>

using namespace std;

void func(int p, int* arr)
{
    for (int i = 0; i < p - 1; i++) {
        for (int j = 0; j < p - i - 1; j++) {
            if (arr[j] > arr[j + 1]) {
                int temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }

    int aver = 0;
    if (p % 2 == 0) {
        aver = (arr[p % 2] + arr[(p % 2) + 1]) / 2;
        cout << aver << endl;
    }
    else {
        aver = arr[(p + 1) / 2];
        cout << aver << endl;
    }

}

int main()
{
    int N;
    cin >> N;
    int arr[100];

    for (int i = 0; i < N; i++) {
        cin >> arr[i];
    }

    func(N, arr);

    return 0;
}

你输入2 46,程序读入2存到N里,然后循环再读入两个数到数组中,可你只输入了46,程序还在等你输入下一个数

元素和元素之间要用逗号隔开,比如这里 先输入2 则接下来 :4 6