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");
}
}