PDA

View Full Version : [devc++] nn mi fa creare un array di float!


Guts
13-11-2005, 09:43
#include <stdlib.h>
int main()
{
float vet[5],i;
system ("CLS");
for (i=0;i<5;i++)
{
printf("inserire numero %0.0f ",i+1);
scanf("%f",&vet[i]);
}
system("pause");
return 0;
}

questo programma sotto borland Turbo C funziona perfettamente, se provo a compilarlo in devc++ invece mi dice

in function 'main': array subscript is not an integer

riguardo alla riga evidenziata.
perchè?
nn posso creare un array di float?

Fenomeno85
13-11-2005, 11:31
i dichiaralo con intero non float.

~§~ Sempre E Solo Lei ~§~

Guts
13-11-2005, 21:25
a me serve float, altrimenti nn mi ponevo il problema

AnonimoVeneziano
13-11-2005, 22:21
Scusa se mi permetto, ma l'indice di un array non serve MAI float.

Gli indici degli array sono SEMPRE interi. Dichiararli come float è pericoloso perchè un float non ha mai un valore preciso, perciò quando viene troncato potresti trovarti di fronte a risultati strani e non prevedibili.

Se il tuo array è un float non hai bisogno di un indice float per scorrerlo, ma basta (anzi , ci vuole categoricamente) un indice int .

DevC++ fa benissimo a impedirti di fare quello che volevi fare.

Ciao

17Qwerty71
13-11-2005, 22:26
a me serve float, altrimenti nn mi ponevo il problema

Prima cosa ti sei scordato di includere l'header stdio :)
L'errore ti viene perchè gli indici dell'array devono essere interi, non è possibile mettere come indice una variabile di tipo float :fagiano:

Quindi o dichiari i come intero o al limite fai così:
scanf("%f",&vet[int(i)]);
il che sarebbe poi inutile dichiarare i come float se poi vuoi ottenere un valore intero :)

17Qwerty71
13-11-2005, 22:28
uff, secondo :mbe:

Guts
13-11-2005, 23:23
i dichiaralo con intero non float.

~§~ Sempre E Solo Lei ~§~
scusa nn avevo tenuto conto della i credevo intendessi l'array :D

per il resto ho risolto il problema grazie