|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Oct 2010
Messaggi: 17
|
Piccolo programma col C
salve a tutti, mi sono iscritto da poco su questo forum, ho bisogno di un piccolo aiutino.
Ho fatto questo piccolo programma col C #include <stdio.h> int main() {int int_array[100]; int i; for (i=0; i<100; i++) { printf ("%d", int_array[i]); } } Ma quando vado a compilare mi escono un casino di numeri. Dove è sbagliato il codice. Aspetto risposta Grazie |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
L'errore è dato dal fatto che nel codice viene dichiarato un array di interi ma le celle di quell'array non vengono inizializzate con dei dati e così quando il puntatore alla cella i-esima viene deferenziato per estrarne il valore ciò che viene letto dalla memoria è, in gergo, "spazzatura".
Per essere più chiari con questo: Codice:
int int_array[100]; Dovresti quindi (ad esempio) eseguire un ulteriore ciclo per inizializzare i cento interi prima del ciclo che li legge per stamparli sullo standard output.
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
|
|
|
|
#3 |
|
Junior Member
Iscritto dal: Oct 2010
Messaggi: 17
|
programma c
Scusami, ma allora come devo completare il codice??
aspetto risposta Grazie mille |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Sep 2005
Messaggi: 1677
|
#include <stdio.h>
int main() { int int_array[100]=0; int i; for (i=0; i<100; i++) { printf (" %d ", int_array[i]=i); } } |
|
|
|
|
|
#5 |
|
Junior Member
Iscritto dal: Oct 2010
Messaggi: 17
|
Non funziona mi da un errore...
Aiuto Grazie |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
|
mica ho capito che devi fare, inizializzare l'array con tutti zero?
Codice:
int int_array[100] = { 0 };
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
Se sei stato capace di produrre da solo il codice che hai postato nel tuo primo messaggio allora dovresti poter essere in grado di scrivere un ciclo che inizializza un array. Se così non fosse ti consiglio di appoggiarti a un buon manuale e colmare la lacuna perchè significherebbe che ti mancano delle conoscenze di base indispensabili. Ciao!
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
|
|
|
|
|
#8 |
|
Junior Member
Iscritto dal: Jul 2006
Città: Lucca
Messaggi: 24
|
Puoi chiarirci quale fosse il tuo obiettivo? Perchè il codice che hai scritto non è sbagliato in se, solo che gli manca qualcosa...te hai creato questo array di 100 posizioni e non ci hai messo dentro nulla...cosa ti aspettavi che stampasse il ciclo for? I numeri che vedi e che sembrano non avere senso sono, come qualcuno ti ha già detto, semplicemente quello che c'è in memoria in quel momento nelle celle dell'array (che, ti ricordo ancora una volta, non è stato inizializzato).
EDIT: ovviamente te hai scritto printf("%d", int_array[i]); questo vuol dire che i numeri te li stampa tutti in sequenza...in questo modo: 135-4567-1869695873 dove il trattino sta per il "meno". se vuoi vederli uno sotto l'altro (in modo da capire meglio quello che stiamo dicendo) fai così printf("%d\n", int_array[i]); Ultima modifica di superpuccio : 08-10-2010 alle 14:07. |
|
|
|
|
|
#9 | ||
|
Senior Member
Iscritto dal: Apr 2004
Città: La regione del Triplete
Messaggi: 5748
|
Quote:
Fammi intuire, vuoi stampare l'indice del vettore? Quote:
Così: for (i=0; i<100; i++) { int_array[i]=0; cout << int_array[i]; } L'istruzione cout (c++) o printf (c) è facoltativa, ma in questo caso permette di vedere cosa fa effettivamente il ciclo che ho scritto!
__________________
Trattative felicemente concluse con domienico120, xbax88 ed engiel, ottimi e seri utenti. |
||
|
|
|
|
|
#10 | |
|
Senior Member
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
|
Quote:
|
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Apr 2004
Città: La regione del Triplete
Messaggi: 5748
|
Sottintendevo che l'inizializzazione "diretta" come per una semplice variablie comportasse un messaggio di errore dal compilatore.
Non sapevo del metodo che avevi postato. In pratica elimina un ciclo for.
__________________
Trattative felicemente concluse con domienico120, xbax88 ed engiel, ottimi e seri utenti. Ultima modifica di zanardi84 : 08-10-2010 alle 20:57. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 02:22.




















