c语言 怎么用数组存放下标

编写程序完成如下功能:
1)查找二维数组arr中的一个特定的值value,函数返回值为其值出现的次数,location数组中存放value出现的位置
int findValue(double arr[][3], int num, double value, int location[][2])
2)在主函数中调用函数,并输出结果


int findValue(double arr[][3], int num, double value, int location[][2]){
    if (num < 0)
    {
        return -1;
    }
    int i, j, m = 0, n = 0;;

    int r = num / 3;
    if (num % 3 == 0)
    {
        r = num / 3;
    }
    else{
        r = num / 3 + 1;
    }
    

    for (i = 0; i < r; i++)
    {
        for (j = 0; j < 3; j++)
        {
             if (value == arr[i][j])
            {
                location[m][0] = i;
                location[m][1] = j;
                m ++;
                n ++;
            }
        
        }
    
    }
    
    return n;    
}
#include<stdio.h>
int main()
{
    double arr[200][3];
    int n, i, location[200][2];

    printf("请输数组元素个数:\n");
    scanf("%d", &n);

    if (n <= 0)
    {
        return -1;
    }

    printf("请输数组元素:\n");
    for (i = 0; i < n; i++)
    {
        scanf("%lf", &arr[i/3][i%3]);
    }
    
    int c = findValue(arr, n, 0.52, location);
    
    printf("%lf出现%d次,位置分别为:\n", 0.52, c);
    for (i = 0; i < c; i++)
    {    
        printf("(%d, %d):\n", location[i][0], location[i][1]);
    }

    getchar();
    return 0;
}

运行结果:

img