PDA

View Full Version : [C] Programma leggere da tastiera "N" numeri


Vincenzoflaminio
10-12-2009, 16:30
Salve dovrei scrivere un programma nel linguaggio C che legge "n" numeri da tastiera. Il programma deve essere scritto in modo da utilizzare un ARRAY.
Nella slide del mio prof. la Function è cosi realizzata :

void leggedatastiera(double v[], int n)
{
int i;
printf("\n inserire %d valori", n);
for (i=0;i<n;i++)
{
printf("\n inserire %d-mo elemento:", i);
scanf("%lf", &v[i]);
}

ora il compilatore di DEV C++ mi da degli errori quali quelli di inizializzare l'array double v[] e n ... effettivamente questa dovrebbe essere soltanto la porzione di codice che va poi CHIAMATA come tutte le function in modo da inserire questi valori dell'array e di "n"" . Ma non riesco a capire come fare qualcuno mi puo dare una mano??

Savius
10-12-2009, 16:45
Ciao,
non so se dipenda solo da questo ma probabilmente l'errore sta nello scanf("%lf",&v[i]) prova a togliera la lettera "f" in questo modo: scanf("%l",&v[i]) e vedi se si risolve. ^^

wingman87
10-12-2009, 19:01
Puoi incollare qui gli errori del compilatore?
Comunque credo che sia un errore di copiatura ma hai dimenticato di chiudere la funzione.

bobosg
11-12-2009, 09:25
tieni te l'ho modificato con un main chiamante funziona perfettamente

#include <stdio.h>

void leggedatastiera(double v[], int n);
int main(){
double array[5];
leggedatastiera(array,5);
}


void leggedatastiera(double v[], int n)
{
int i;
printf("\n inserire %d valori", n);
for (i=0;i<n;i++)
{
printf("\n inserire %d-mo elemento:", i);
scanf("%lf", &v[i]);
}
}


CIAO!

Vincenzoflaminio
08-01-2010, 00:57
Grazie della risposta come è compilato da bobosg funziona ma nn riesco a capire dove sono gli errori copiando dalle slide del mio prof.
Propongo un altro esempio :

#include <stdio.h>

int somma_arrayI(int[], int n); */dichiarazione function
int main()
{
int a[]={2,15,1,2,22,0,4};
int somma;
somma=somma_arrayI(a,7);
printf ("somma degli elementi: %d ", somma);
system("PAUSE");
return 0; */ questo return 0 è per il main in DEV c++
}
int somma_arrayI(int a[]. int n ) */questa è la parte di codice della function
{
int s=0, i;
for (i=0;i<n;i++)
s=s+a[i];
return s; */ il return della function
}


ora dove sono gli errori
il compilatore ne segnala vari....
13 C:\Dev-Cpp\somma array I elementi.c syntax error before '.' token
C:\Dev-Cpp\somma array I elementi.c In function `somma_arrayI':
14 C:\Dev-Cpp\somma array I elementi.c number of arguments doesn't match prototype
3 C:\Dev-Cpp\somma array I elementi.c prototype declaration
16 C:\Dev-Cpp\somma array I elementi.c `n' undeclared (first use in this function)


e pensare ke nn ho fatto altro ke copiare qualcuno sarebbe capace di spiegarmi eventualmente dove sbaglio e perché?

wingman87
08-01-2010, 04:17
L'errore è uno solo ed è in questa riga:
int somma_arrayI(int a[]. int n ) */questa è la parte di codice della function
C'è un punto al posto della virgola. Comunque l'errore del compilatore dava una mano a capirlo dicendo
13 C:\Dev-Cpp\somma array I elementi.c syntax error before '.' token

Vincenzoflaminio
08-01-2010, 14:11
L'errore è uno solo ed è in questa riga:
int somma_arrayI(int a[]. int n ) */questa è la parte di codice della function
C'è un punto al posto della virgola. Comunque l'errore del compilatore dava una mano a capirlo dicendo

Grazie mille gentilissimo, sono alle prime armi... ora funziona!