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.



Rispondi quotando
