[C] inserire/leggere dati in un array
Ciao ragazzi, come da titolo, come si inseriscono/leggono i dati in un array? Ecco un esempio:
Dall'esempio, come faccio a "catturare" i 5 numeri rispettivamente in v[0], v[1]....v[4]?
Vi ringrazio in anticipo.
#include <stdio.h> #include <stdlib.h> #define DIM 6 int v[DIM]; int main() { printf("inserisci 5 numeri: "); . . . . . }
Dall'esempio, come faccio a "catturare" i 5 numeri rispettivamente in v[0], v[1]....v[4]?
Vi ringrazio in anticipo.
Risposte
ciao,
semplicemente usi un ciclio while.
semplicemente usi un ciclio while.
int i = 0 while(i<6){ printf(blabla) scanf("%d",v[0]); i++; }

Usando
v[i]anziché
v[0]

ah grazie 
sti esami mi fanno fare errori da qualunque parte

sti esami mi fanno fare errori da qualunque parte

"ham_burst":
ciao,
semplicemente usi un ciclio while.
int i = 0 while(i<6){ printf(blabla) scanf("%d",v[0]); i++; }
perfetto! E se volessi modificare il codice utilizzando un ciclo for, il codice dovrebbe essere scritto così?
{ . . int i; printf("inserisci 3 numeri"); \* digito da tastira i 3 numeri, premo INVIO *\ scanf("%d", v[i]); for(i=0;i<=6;i++) \* ora i numeri digitati sono salvati rispettivamente in V[0]...v[2] esatto? *\ . . }
la scanf io la metterei dentro al ciclo, poi cambierei il 6 dentro il ciclo for
"itpareid":
la scanf io la metterei dentro al ciclo, poi cambierei il 6 dentro il ciclo for
Potresti mostrarmi come lo scriveresti tu il codice? Ti ringrazio.
I cicli iterativi sono molto lineari ed intuitivi: prova ad eseguire mentalmente il codice e vedrai dov'è il tuo errore!
"Raptorista":
I cicli iterativi sono molto lineari ed intuitivi: prova ad eseguire mentalmente il codice e vedrai dov'è il tuo errore!
Dunque se non erro il codice dovrebbe essere scritto così esatto?
{
.
.
int i;
for(i=0;i<=6;i++)
{
printf("inserisci 3 numeri");
scanf("%d", v);
}
.
.
}
Comunque non capisco quello che ha detto itpareid, cioè di cambiare il 6 dentro il ciclo for, cosa intende?
ps in precedenza ho posto la dimensione massima dell'array a 6, mentre ora nell'esempio chiedo di inserire 3 numeri, per caso intende di cambiare nel ciclo il 6 e mettere il 3?
Scusa l'ignoranza, sono ancora alle prime armi

Mai seintito parlare di "buffer overflow"?
il ciclo for va fa $0$ a quando $i=6$, fai un conto qunti numeri sono da $0...6$ sono $7$ perciò 7 posizioni. v[6] è in una porzione non alloccatta, perciò un bel bug.
In informatica, in generale, si inizia a contare da $0$, perciò se allocchi un vettore di con $DIM 6$ vuol dire che allocchi 6 posizioni per scandirlo usi un intero da $0...5$.
perciò: se usi $<=$ scrivi l'ultima posizione utile, cioè la $5$ (DIM-1), se usi $<$ metti la dimensione $6$ DIM penso che sia banale capire perchè, pensando a ciò che ti ho scritto sopra.
il ciclo for va fa $0$ a quando $i=6$, fai un conto qunti numeri sono da $0...6$ sono $7$ perciò 7 posizioni. v[6] è in una porzione non alloccatta, perciò un bel bug.
In informatica, in generale, si inizia a contare da $0$, perciò se allocchi un vettore di con $DIM 6$ vuol dire che allocchi 6 posizioni per scandirlo usi un intero da $0...5$.
perciò: se usi $<=$ scrivi l'ultima posizione utile, cioè la $5$ (DIM-1), se usi $<$ metti la dimensione $6$ DIM penso che sia banale capire perchè, pensando a ciò che ti ho scritto sopra.
"ham_burst":
Mai seintito parlare di "buffer overflow"?
il ciclo for va fa $0$ a quando $i=6$, fai un conto qunti numeri sono da $0...6$ sono $7$ perciò 7 posizioni. v[6] è in una porzione non alloccatta, perciò un bel bug.
In informatica, in generale, si inizia a contare da $0$, perciò se allocchi un vettore di con $DIM 6$ vuol dire che allocchi 6 posizioni per scandirlo usi un intero da $0...5$.
perciò: se usi $<=$ scrivi l'ultima posizione utile, cioè la $5$ (DIM-1), se usi $<$ metti la dimensione $6$ DIM penso che sia banale capire perchè, pensando a ciò che ti ho scritto sopra.
Sei stato chiarissimo, l'uguaglianza è stata una mia mancanza che nel copia-incolla ho scordato di cancellare, ma ero convinto l'avessi cancellata, per questo non venivo a capo del problema!
Comunque nonostante le correzioni il Dev mi da errore di applicazione... ma credo che sia un problema del software e non del codice che ho postato... non ho ancora avuto modo di cambiarlo purtroppo.
Saluti, e grazie per gli interventi.
