Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2011
    Messaggi
    14

    [C++]Inserimento in posizioni alterne

    Ciao a tutti,
    sono nuovo nel forum e mi chiamo Gianmarco. Sono un "alle prime armi" con il c++
    e ho un esercizio che dovrei risolvere.
    L'esercizio mi chiede di inserire due array da tastiera( di uguale dimensione N ) per poi copiare in un nuovo array
    C[2N] gli elementi degli array A e B in posizione alternate (nei pari A e nei dispari B). Io ho pensato a questa soluzione

    codice:
    #include <iostream>
    using namespace std;
    int main ()  {
    int n; // dim array
    cout << "Inserisci dimensione array" << endl;
    cin >> n;
    int a[n], b[n];
    int w = n*2;
    int c[w];
    // inserimento elementi di a e di b
    for (int i = 0; i < n; i++){
         cin >> a[i]; 
         }
    for (int j = 0; j < n; j++){
         cin >> b[j];
         }
    //copio in c gli elementi di a nelle posizioni pari
    for (int k = 0; k < w; k+=2){
         for (int i = 0; i < n; i++){
              c[k] = a[i];
              }
         }
    //copio in c gli elementi di b nelle posizioni pari
    for (int k = 1; k < w; k+=2){
         for (int j = 0; j < n; j++){
              c[k] = b[j];
              }
         }
    system("PAUSE");
    return 0;
    }
    Il problema è che se io per esempio metto n = 5, a={1,2,3,4,5} e b = {6,7,8,9,0} c dovrebbe essere c = {1,6,2,7,3,8,4,9,5,0}
    invece in output ho una cosa del genere c = {5,0,5,0,5,0,5,0,5,0} ..... Come mai????? dove sbaglio??? Mi potreste aiutare per piacere?? (Premetto che ancora non conosco i puntatori e se potete darmi una soluzione che non li utilizzi ne sarei veramente felice =) ) Ringrazio in anticipo!

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Quale output? Dove sono le istruzioni per l'output nel tuo programma?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2011
    Messaggi
    14
    Hai ragione scusami non le ho messe per brevità di codice.
    L'output è questo
    for (int k = 0; k < w; k++){
    cout << c[k] << " ";
    }
    e mi restituisce ciò che ho indicato sopra. Sapreste dirmi dov'è che il codice contiene l'errore??

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    L'errore è nei doppi for che usi. Ne serve uno solo per volta ... ovvero

    codice:
        //copio in c gli elementi di a nelle posizioni pari
        int i=0;
        for (int k = 0; k < w; k+=2, i++){
        c[k] = a[i];
        }
        //copio in c gli elementi di b nelle posizioni pari
        int j=0;
        for (int k = 1; k < w; k+=2, j++){
        c[k] = b[j];
        }
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it L'avatar di Freax
    Registrato dal
    Jul 2006
    Messaggi
    460
    dovete inserire il codice nei tag, non si legge nulla e passa la voglia di stare a leggere su un forum, senza contare che si perde pure l'indentazione.

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    Originariamente inviato da Freax
    dovete inserire il codice nei tag, non si legge nulla e passa la voglia di stare a leggere su un forum, senza contare che si perde pure l'indentazione.
    Oltre a questo, nel titolo va indicato anche il linguaggio usato.

    Invito a leggere il Regolamento interno.

    Ho corretto io: aggiunto il linguaggio al titolo e aggiunti i tag CODE al codice.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2011
    Messaggi
    14
    Oregon è normale che adesso in output ho una cosa del genere
    per n = 3, dunque k = 6
    a= {1,2,3} b = {4,5,6} (questi sono i dati che inserisco da tastiera)
    c = {4199425, 4199470, 4469856, 2009091650, 2293620, 4247040}
    Ho solo sostituito il codice nel modo in cui me lo hai indicato tu. Comunque grazie mille davvero.

    Mi scuso ma non so come mettere il codice dentro tag

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2011
    Messaggi
    14
    LeleFt il regolamento l'ho letto, infatti poi avevo cambiato il titolo ma non me lo dava in sostituzione....
    Scusate la mia ignoranza, perdonatemi

  9. #9
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Originariamente inviato da jimmikid
    Mi scuso ma non so come mettere il codice dentro tag
    E' scritto al punto 7 del regolamento linkato.

    Nell'area di scrittura del messaggio si scrive [CODE]
    Poi si incolla tutto il codice
    Poi si chiude il blocco scrivendo [/CODE]


    Esempio:

    [CODE]
    Qui tutto il codice
    [/CODE]


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da jimmikid
    Oregon è normale che ...
    No, devi avere cambiato qualcosa o scritto male le modifiche.

    Posta nuovamente tutto il codice attuale

    (per i tag utilizza il tasto

    CODE

    dell'editor del forum)
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.