Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - ho provato a scrivere un programma in cui riempio un array ma mi dà sempre errore
Forum - C/C++ - ho provato a scrivere un programma in cui riempio un array ma mi dà sempre errore

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
ciao888 (Normal User)
Pro


Messaggi: 69
Iscritto: 14/10/2010

Segnala al moderatore
Postato alle 17:42
Sabato, 16/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

PM
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1787
Iscritto: 26/06/2009

Up
1
Down
V
Segnala al moderatore
Postato alle 19:04
Sabato, 16/10/2010
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++

  1. #include <cstdlib>
  2. #include <iostream>
  3. using namespace std;
  4.  
  5. // Queste due variabili le spostiamo fuori dalla funzione main, e le rendiamo globali
  6. // In questo modo saranno visibili anche dall'altra funzione
  7. const int A=10;
  8. int numeri[A];
  9.  
  10. void visualizzare()  // ******  *******
  11. {
  12.     cout << numeri[0] << " ";
  13.     cout << numeri[2] << " ";
  14.     cout << numeri[4] << " ";
  15.     cout << numeri[6] << " ";
  16.     cout << endl; // ANDIAMO A CAPO
  17. }
  18.  
  19. int main(int argc, char *argv[])
  20. {  
  21.     int n = 1; // **** Avevi dimenticato di inizializzarla a 1 ***
  22.     for ( int i = 0; i < A; i++ )
  23.     {
  24.         numeri[i] = n;
  25.         n = n + 2;
  26.     }
  27.  
  28.     // *** Se non chiamiamo la funzione di visualizzazione, non vedremo niente ***
  29.     visualizzare();
  30.     // *** Adesso va meglio ***
  31.  
  32.     // *** Alla fine della funzione main, bisogna restituire un valore intero
  33.     // 0 significa che il programma è andato a buon fine.
  34.     return 0;
  35. }



Software Failure: Guru Meditation
Forum su Informatica, Elettronica, Robotica e Tecnologia: http://www.nonsoloamiga.com
PM
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1787
Iscritto: 26/06/2009

Up
0
Down
V
Segnala al moderatore
Postato alle 17:59
Sabato, 16/10/2010
intanto mettiamoci il tag CODE
Testo quotato

Postato originariamente da ciao888:
Codice sorgente - presumibilmente C++

  1. #include <cstdlib>
  2.  #include <iostream>
  3.  using namespace std;
  4.  int main(int argc, char *argv[])
  5.  {
  6.   const int A=10;
  7.   int numeri[A];
  8.   int n;
  9.    for ( int i = 0; i < A; i++, n % 2 = 0.5 )
  10.    numeri[i]=n;
  11.    }
  12.     void visualizzare (const int numeri[i]
  13.     {
  14.      cout << numeri[0], numeri[2], numeri[4], numeri[6], numeri[8];
  15.      }
  16.      }


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++

  1. // ...
  2. const int A = 10;
  3. int numeri[A];
  4. int n = 1; // il nostro primo numero dispari
  5. for (int i=0; i < A; i++)
  6. {
  7.     numeri[i] = n;
  8.     n = n + 2; // incremento di 2, ottengo quindi il prossimo numero dispari
  9. }
  10. // ...



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++

  1. for (int i=0; i<A; i++)
  2. {
  3.     cout << numeri[i] << " "; // stampo un numero e uno spazio
  4. }
  5. cout << endl; // stampo un carattere di fine riga



Software Failure: Guru Meditation
Forum su Informatica, Elettronica, Robotica e Tecnologia: http://www.nonsoloamiga.com
PM
Avatar
ciao888 (Normal User)
Pro


Messaggi: 69
Iscritto: 14/10/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 18:08
Sabato, 16/10/2010
ho fatto come hai detto,però mi dà errore su void visualizzare

PM
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1787
Iscritto: 26/06/2009

Up
0
Down
V
Segnala al moderatore
Postato alle 18:28
Sabato, 16/10/2010
Testo quotato

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...


Software Failure: Guru Meditation
Forum su Informatica, Elettronica, Robotica e Tecnologia: http://www.nonsoloamiga.com
PM
Avatar
()
Newbie


Messaggi:
Iscritto:

Up
0
Down
V
Segnala al moderatore
Postato alle 18:41
Sabato, 16/10/2010
Testo quotato

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

  1. for(int i = 0;i < 8;i+=2)
  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
PM
Avatar
ciao888 (Normal User)
Pro


Messaggi: 69
Iscritto: 14/10/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 19:01
Sabato, 16/10/2010
ok adesso funziona perfettamente!grazie tante!!:k:

PM
Avatar
ciao888 (Normal User)
Pro


Messaggi: 69
Iscritto: 14/10/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 16:20
Domenica, 17/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!!

PM
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2763
Iscritto: 21/09/2007

Up
0
Down
V
Segnala al moderatore
Postato alle 21:29
Lunedì, 18/10/2010
Questo topic è in violazione di una o più norme del regolamento: http://www.pierotofy.it/pages/extras/forum/9/3839-regolame ... .
    
Dopo averlo letto riapri un nuovo topic assicurandoti di aver rispettato le regole. Grazie per la tua pazienza.


Ingegnere Informatico
https://ldlagency.it
PM
Pagine: [ 1 2 ] Precedente | Prossimo