Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [C++] Ricopiare Contenuto Vettore All'inverso

    Sapreste dirmi perchè questo programma va bene per le prime due parole dalla fine, ovvero anna e ciro e poi mi sballa il valore di k, fermandosi nella posizione 8 dove non è presente alcuno spazio all'interno del vettore? Il codice seguente gira ed ho anche inserito dei cout per visualizzare i valori alla ricerca dell'errore.

    codice:
    /*
    Note              : 1.	Dati 2 array A e B di caratteri di lunghezza N. L'array A contiene dei 
                           nomi separati da uno spazio, l'array B è vuoto. 
                           Scrivere una procedura che scriva nell'array B, separati da uno
                           spazio, gli stessi nomi presenti in A ma in ordine inverso.
                           
                           Ex 1 Compito 20 11 07
    
    */     
    
    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    
    int main(){
        
        
        int k=19,n=0,i=20;
        char v[20]={'d','a','r','i','o',' ','a','l','d','o',' ','c','i','r','o',' ','a','n','n','a'};
        char v1[20];
        
        for(int c=0;c<20;c++) cout<<v[c]<<" ";
        cout<<endl;
        
        while(i>=0){
                    
                    
                    cout<<"K di Partenza: "<<k<<" v[k]: "<<v[k]<<endl;
                    while(v[k]!=' ' && k>=0) k--;
                    
                    cout<<"K: "<<k<<endl;
                    system("pause");
                    
                    for(int z=k+1;z<i;z++){
                            v1[n]=v[z];
                            cout<<v1[n]<<" ";
                            n++;
                            }
                    if(k>=0) v[n]=v[k];
                    cout<<endl;
                    system("pause");
                    i=k;
                    k--;
                    }
                            
        for(int c=0;c<20;c++) cout<<v1[c]<<" ";
        cout<<endl;
        
        
        system("pause");
        return 0;
        
    }

    Grazie a tutti.
    MondoLibero: Informazione Libera, Varia ed Eventuale
    Sito di informazione varia ed eventuale. Quando ho voglia scrivo di ciò che mi pare. Pubblico guide, recensioni, notizie, critiche e tutto ciò che mi passa sotto mano e che penso sia interessante.

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381

    Re: [C++] Ricopiare Contenuto Vettore All'inverso

    Fa attenzione a dove scrivi.
    codice:
                    
                    for(int z=k+1;z<i;z++){
                            v1[n]=v[z];
                            cout<<v1[n]<<" ";
                            n++;
                            }
                    if(k>=0) v[n]=v[k]; 
                    cout<<endl;
                    system("pause");
                    i=k;
                    k--;
                    }

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    47
    quando fai

    codice:
    for(int z=k+1;z<i;z++)
    prova con

    for(int z=k+1;z<= i;z++)

  4. #4
    Originariamente inviato da rtk
    quando fai

    codice:
    for(int z=k+1;z<i;z++)
    prova con

    for(int z=k+1;z<= i;z++)
    Perfetto sembra andare bene, grazie mille rtk.
    MondoLibero: Informazione Libera, Varia ed Eventuale
    Sito di informazione varia ed eventuale. Quando ho voglia scrivo di ciò che mi pare. Pubblico guide, recensioni, notizie, critiche e tutto ciò che mi passa sotto mano e che penso sia interessante.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.