算出数组平均和对应下标 c++

【题目描述】
输入一个长度为n的数组arr,输出数组中比所有元素平均值都小的元素和对应的下标(从1开始)。

【输入格式】
第一行有一个正整数n,表示数组长度;
第二行有n个整数,用空格隔开,表示数组元素

【输出格式】
若干行,每行表示符合条件的元素和对应下标

【数据范围】
对于100%的数据:1<=n,arr[i]<=10000,下标i从1开始

【样例输入】
4
1 3 2 4
【样例输出】
1 1
2 3
【样例解释】
平均值为2.5,比平均值小的数字是1和2,对应下标分别是1和3

int main()
{
    int n, sum = 0;
    scanf("%d", &n);
    int arr[n];
    for (int i = 0; i < n; i++)
    {
        scanf("%d", &arr[i]);
        sum += arr[i];
    }
    double ave = 1.0 * sum / n;
    for (int i = 0; i < n; i++)
    {
        if (arr[i] < ave)
            printf("%d %d\n", arr[i], i + 1);
    }
    return 0;
}