PDA

Visualizza la versione completa : [C] errore nel passaggio di un vettore bidimensionale


managerfx
01-12-2011, 13:27
Ragazzi non riesco a passare il vettore multidimensionale a una funzione! non capisco dov'è l'errore! mi dareste una mano!??

l'errore segnalato è questo:


In function `int main()':

cannot convert `float (*)[((unsigned int)((int)col))]' to `float (*)[10]' for argument `1' to `float esame1(float (*)[10], int, float)'

grazie in anticipo!




/*
Description: IL PROGRAMMA ACQUISISCE UN VETTORE BIDIMENSIONALE E NE EFFETTUA
LA RICERCA DI UN TARGET IN UNA DETERMINATA COLONNA PASSANDO IL VETTORE ALLA
FUNZIONE esame1.
*/


#include <stdio.h>
#include <stdlib.h>

#define maxrig 10
#define maxcol 10

int esame1 (float tabella[maxrig][maxcol], int i, float target);

int main ()
{

int rig, col, r, c, i, var;
float tab[rig][col], target;


printf ("\nInserisci dimenzione RIGHE: ");
scanf ("%d", &rig);
printf ("\nInserisci dimenzione COLONNE: ");
scanf ("%d", &col);

for (r=0; r<rig; ++r)
{
for (c=0; c<col; ++c)
{
printf ("\n[%d][%d]: ", r+1, c+1);
scanf ("%f", &tab[r][c]);
}
printf ("\n\n");

}

for (r=0; r<rig; ++r)
{
for (c=0; c<col; ++c)
{
printf ("[%.2f]", tab[r][c]);
printf (" ");
}
printf ("\n\n");

}


printf ("\n\nInserisci il valore da ricercare: ");
scanf ("%f", &target);
printf ("\n\nInserisci il quale COLONNA lo vuoi ricercare: ");
scanf ("%d", &i);

var = esame1 (tab, i, target);

printf ("\n\n\nIndice: %d", var);

printf ("\n\n----\n\n");
system ("pause");

}



int esame1 (float tabella[maxrig][maxcol], int i, float target)

{
int riga=0;

for (riga=0; riga<maxrig; ++riga)
{
if (target==tabella[riga][i])
riga=riga;
else riga=-1;
}

return (riga);

}

oregon
01-12-2011, 14:29
In questa riga



float tab[rig][col], target;


non puoi indicare rig e col (che non sono costanti e comunque con un valore non definito).

Forse volevi scrivere



float tab[maxrig][maxcol], target;

Loading