ciao888 (Normal User)
Pro
Messaggi: 69
Iscritto: 14/10/2010
|
Questo topic è stato chiuso dal moderatore #include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
const int A=10;
int numeri[A];
int n;
for ( int i = 0; i < A; i++, n % 2 = 0.5 )
numeri=n;
}
void visualizzare (const int numeri
{
cout << numeri[0], numeri[2], numeri[4], numeri[6], numeri[8];
}
}
questo è il programma, sicuramente ci saranno errori perchè è la prima volta che scrivo un programma con array, comunque a me dà errore sul for e non riesco ad andare avanti,il programma ha lo scopo di riempire un array coi i primi 10 numeri dispari,ditemi dove posso apportare le modifiche,grazie
|
|
TheKaneB (Member)
Guru^2
Messaggi: 1792
Iscritto: 26/06/2009
|
Ho preso un paio di variabili e le ho rese globali. E' una tecnica brutta, ma visto che sei agli inizi, e ancora hai difficoltà anche a mettere le parentesi, preferisco andarci con calma e partire da zero...
Leggi attentamente tutti i commenti che ho inserito. Se hai domande chiedi pure...
Codice sorgente - presumibilmente C++ |
#include <cstdlib> #include <iostream> using namespace std; // Queste due variabili le spostiamo fuori dalla funzione main, e le rendiamo globali // In questo modo saranno visibili anche dall'altra funzione const int A=10; int numeri[A]; void visualizzare() // ****** ******* { cout << numeri[0] << " "; cout << numeri[2] << " "; cout << numeri[4] << " "; cout << numeri[6] << " "; cout << endl; // ANDIAMO A CAPO } int main(int argc, char *argv[]) { int n = 1; // **** Avevi dimenticato di inizializzarla a 1 *** for ( int i = 0; i < A; i++ ) { numeri[i] = n; n = n + 2; } // *** Se non chiamiamo la funzione di visualizzazione, non vedremo niente *** visualizzare(); // *** Adesso va meglio *** // *** Alla fine della funzione main, bisogna restituire un valore intero // 0 significa che il programma è andato a buon fine. return 0; }
|
|
|
TheKaneB (Member)
Guru^2
Messaggi: 1792
Iscritto: 26/06/2009
|
intanto mettiamoci il tag CODE
Postato originariamente da ciao888:
Codice sorgente - presumibilmente C++ |
#include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { const int A=10; int numeri[A]; int n; for ( int i = 0; i < A; i++, n % 2 = 0.5 ) numeri[i]=n; } void visualizzare (const int numeri[i] { cout << numeri[0], numeri[2], numeri[4], numeri[6], numeri[8]; } }
|
questo è il programma, sicuramente ci saranno errori perchè è la prima volta che scrivo un programma con array, comunque a me dà errore sul for e non riesco ad andare avanti,il programma ha lo scopo di riempire un array coi i primi 10 numeri dispari,ditemi dove posso apportare le modifiche,grazie |
ora si legge meglio...
seconda cosa: questa istruzione
n % 2 = 0.5
non significa niente; è sbagliata grammaticalmente, sintatticamente e concettualmente.
terza cosa: ragiona sull'algoritmo
Se devi memorizzare i primi 10 numeri dispari, cioè 1 3 5 7 ecc..., devi partire da 1 e sommare 2 ad ogni passo dell'algoritmo.
Il codice corretto è pertanto questo:
Codice sorgente - presumibilmente C++ |
// ... const int A = 10; int numeri[A]; int n = 1; // il nostro primo numero dispari for (int i=0; i < A; i++) { numeri[i] = n; n = n + 2; // incremento di 2, ottengo quindi il prossimo numero dispari } // ...
|
Correggi il codice in questo modo e vedrai che funziona... ah un'altra cosa: quando visualizzi i numeri fai un'altro ciclo for così:
Codice sorgente - presumibilmente C/C++ |
for (int i=0; i<A; i++)
{
cout << numeri[i] << " "; // stampo un numero e uno spazio
}
cout << endl; // stampo un carattere di fine riga
|
|
|
ciao888 (Normal User)
Pro
Messaggi: 69
Iscritto: 14/10/2010
|
ho fatto come hai detto,però mi dà errore su void visualizzare
|
|
TheKaneB (Member)
Guru^2
Messaggi: 1792
Iscritto: 26/06/2009
|
Postato originariamente da ciao888:
su void visualizzare ho risolto però mi dà errore sulla parentesi graffa sotto a visualizzare |
hai fatto un casino con le parentesi... riposta l'intero sorgente con le ultime modifiche che te lo correggo... |
|
()
Newbie
Messaggi:
Iscritto:
|
Postato originariamente da ciao888:
void visualizzare (const int numeri[] [10]
{
for ( int i = 0; i < A; i++ )
cout << numeri[0], numeri[2], numeri[4], numeri[6], numeri[8];
}
ho scritto numeri[0],numeri[2],ecc..perchè il programma chiede la visualizzazione di quei indici |
Questo pezzo non ha molta logica.
Crea semplicemente un for con incremento di 2.
Codice sorgente - presumibilmente Plain Text |
for(int i = 0;i < 8;i+=2)
cout<<numeri[i]<<" "; //le ultime virgolette servono solo per dare uno spazio tra i numeri che verranno stampati
|
Ultima modifica effettuata da il 16/10/2010 alle 18:42 |
|
ciao888 (Normal User)
Pro
Messaggi: 69
Iscritto: 14/10/2010
|
ok adesso funziona perfettamente!grazie tante!!
|
|
ciao888 (Normal User)
Pro
Messaggi: 69
Iscritto: 14/10/2010
|
ho visto come avevi scritto il nuovo programma ma mi sembra più complicato,preferisco col cout piuttosto che che col void visualizzare!grazie cominque!!
|
|
HeDo (Founder Member)
Guru^2
Messaggi: 2765
Iscritto: 21/09/2007
|
|
|