View Full Version : [c]Array 2D: errore nella chiamata alla function somma
mariano89
26-02-2010, 19:32
#include <stdio.h>
#include <stdlib.h>
#define RIG 2
#define COL 3
int riempi_array2D (int a[][100], int, int);
int main(int argc, char *argv[])
{
int array2D [RIG][COL]= {1, 2, 3, 1, 2, 3 };
int somma;
somma = riempi_array2D (array2D[], RIG, COL);
printf ("somma %d", somma);
system("PAUSE");
return 0;
}
int riempi_array2D (int a[][100], int righe, int colonne){
int i, j, somma = 0;
for (i=0; i<righe; i++)
{
for (j=0; j<colonne; j++){
somma = somma + aray[i][j]
}
}
return somma;
}
non ho capito molto bn come si chiama e come si dichiara, chi ha pazienza di spiegarmi qst piccolo dettaglio?:stordita:
bobbytre
26-02-2010, 19:46
nella funzione riempi_array2D il nome del parametro prima è a
mentre successivamente lo chiami aray
oltre che cosi "a occhio" mi sembra che i parametri li passi in modo errato ...
mariano89
26-02-2010, 20:06
hai ragione su quell'errore.
Mentre che il passaggio dei paramenti non ho capito bene come avviene...:confused:
Ho provato in quest'altro modo ma mi fa la somma degli indirizzi in memoria e non dei valori:
#include <stdio.h>
#include <stdlib.h>
#define RIG 2
#define COL 3
int riempi_array2D (int a[][100], int, int);
int main(int argc, char *argv[])
{
int array2D [RIG][COL]= {1, 2, 3, 1, 2, 3 };
int som;
som = riempi_array2D (array2D [3], RIG, COL);
printf ("somma %d", som);
system("PAUSE");
return 0;
}
int riempi_array2D (int a[][100], int righe, int colonne){
int i, j, somma = 0;
for (i=0; i<righe; i++)
{
for (j=0; j<colonne; j++){
printf ("%d + %d", somma, a[i][j]);
somma = somma + a[i][j];
}
}
return somma;
}
Non ci vogliono le quadre nella chiamata alla funzione.
mariano89
26-02-2010, 20:49
è vero, e così grazie. Però facendo una stampa di tutte le operazioni che fa ho notato che il ciclo for non funziona, ovvero la j itera ma non la i.
int riempi_array2D (int a[][50], int righe, int colonne){
int i, j;
int somma = 0;
for (i=0; i<righe; i++)
{
for (j=0; j<colonne; j++){
printf (" %d + %d \n", somma, a[i][j]);
somma = somma + a[i][j];
}
}
return somma;
}
ho sbagliato a scrivere qualcosa?:mbe:
int riempi_array2D (int a[][100], int, int);
perche dimensione 100?
#include <stdio.h>
#include <stdlib.h>
#define RIG 2
#define COL 3
int riempi_array2D (int a[RIG][COL], int, int);
int main(int argc, char *argv[])
{
int array2D [RIG][COL]= {1, 2, 3, 1, 2, 3 };
int som;
som = riempi_array2D (array2D, RIG, COL);
printf ("somma %d", som);
system("PAUSE");
return 0;
}
int riempi_array2D (int a[RIG][COL], int righe, int colonne){
int i, j, somma = 0;
for (i=0; i<righe; i++)
{
for (j=0; j<colonne; j++)
{
printf ("%d + %d", somma, a[i][j]);
somma = somma + a[i][j];
}
}
return somma;
}
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.