Devo scrivere una function che ha in input un array 2D di double e in output il massimo tra le somme degli elementi di ogni colonna. Ora per una questione di semplicità, almeno per me, ho iniziato a scrivere la function considerando un array di int però ora sto trovando difficoltà nel passaggio a double. 
Questa è la function con array int
int max_col_array2D (int a[][100], int n, int m)
{
    int i, j, max, s;
    max=0;
    s=0;
    for (j=0; j<n; j++)
    {
        for (i=0; i<m; i++)
            s = s + a[i][j];
        if (s > max)
            max = s;
        s = 0;
    }
    return max;
}
E questa dovrebbe essere la function con array double però poi quando la inserisco in un main non mi viene
double max_col_array2D (double a[][100], int n, int m)
{
    int i, j;
    double max=0.0, s=0.0;
    for (j=0; j<n; j++)
    {
        for (i=0; i<m; i++)
            s = s + a[i][j];
        if (s > max)
            max = s;
        s = 0.0;
    }
    return max;
}
Posto anche il main nel caso ci sia qualcosa di sbagliato proprio qui
int main()
{
    int i, j, n, m;
    double a[100][100], massimo;
    printf ("inserire il numero di righe (<=100): ");
    scanf ("%d", &n);
    printf ("inserire il numero di colonne (<=100): ");
    scanf ("%d", &m);
    printf ("inserire i valori dell'array: \n");
    for (i=0; i<n; i++)
        for (j=0; j<m; j++)
            scanf ("%f", &a[i][j]);
    massimo = max_col_array2D (a, n, m);
    printf ("l'array e': \n");
    visualizza_a2D (a, n, m);
    printf ("il massimo tra le somme degli elementi di ogni colonna e':\n %f", massimo);
    return 0;
}
void visualizza_a2D (double a[][100], int n, int m)
{
    int i, j;
    for (i=0; i<n; i++)
    {
        for (j=0; j<m; j++)
            printf ("%4f", a[i][j]);
        printf ("\n");
    }
}