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++ - esercizio sulla ricorsione in c++
Forum - C/C++ - esercizio sulla ricorsione in c++

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
disperate (Normal User)
Newbie


Messaggi: 8
Iscritto: 02/04/2010

Segnala al moderatore
Postato alle 19:25
Venerdý, 02/04/2010
Salve,
ho questo prototipo:
Codice sorgente - presumibilmente C/C++

  1. int ricInverti(char s[], char s1[]);



Utilizzando la ricorsione devo scrivere una funzione che inverte la stringa s.
Qualcuno sa come la posso fare? (Inoltre ammetto di essere perplessa perchŔ con le strighe di caratteri ho sempre usato il void e non l'int...)
Ringrazio chiunque riesca ad aiutarmi

N.B. non posso modificare il prototipo.

PM Quote
Avatar
XBarboX (Member)
Guru


Messaggi: 945
Iscritto: 31/12/2008

Segnala al moderatore
Postato alle 19:42
Venerdý, 02/04/2010
ok si pu˛ fare, ma non possiamo risolverti da 0 il tuo problema, fai almeno "finta" di postare un pezzetto di codice.
Non siamo una software house.


The old lie: Dulce et decorum est pro patria mori
PM Quote
Avatar
disperate (Normal User)
Newbie


Messaggi: 8
Iscritto: 02/04/2010

Segnala al moderatore
Postato alle 19:51
Venerdý, 02/04/2010
ok anche se sono sicurissima di aver scritto una emerita scempiaggine ecco:

Codice sorgente - presumibilmente C++

  1. using namespace std;
  2.  
  3. int ricInverti(char [], char []);
  4. #define MAX 10
  5.  
  6. int main () {
  7.     char s[MAX];
  8.      char s1[MAX];
  9.      
  10.     int n,i;
  11.    
  12.     cin>>s;
  13.     n=strlen(s);
  14.     /*arrivata qui non so come chiamare la funzione per far stampare la stringa invertita*/
  15.    
  16. }
  17.    
  18.  
  19. system("PAUSE");
  20. return 0;
  21. }
  22.  
  23. int ricInverti(char s[], char s1[]) {
  24.     int len = strlen(s);
  25.    
  26.     while(len>0){
  27.     s1[0]=s[len];
  28.     len--;
  29.  
  30.     return ricInverti(s,s1+1);
  31. }
  32. }


PM Quote
Avatar
XBarboX (Member)
Guru


Messaggi: 945
Iscritto: 31/12/2008

Segnala al moderatore
Postato alle 20:49
Venerdý, 02/04/2010
Ma la ricorsione Ú obbligatoria? Con un ciclo for faresti tutto in un'attimo...


The old lie: Dulce et decorum est pro patria mori
PM Quote
Avatar
disperate (Normal User)
Newbie


Messaggi: 8
Iscritto: 02/04/2010

Segnala al moderatore
Postato alle 20:55
Venerdý, 02/04/2010
purtroppo si Ŕ una traccia che il mio prof ha assegnato e che devo consegnare :(

PM Quote
Avatar
Matthew (Member)
Expert


Messaggi: 387
Iscritto: 29/01/2007

Segnala al moderatore
Postato alle 6:47
Sabato, 03/04/2010
Non Ŕ certo il modo pi¨ semplice per invertire una stringa, comunque eccoti il codice:

Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2. #include <cstring>
  3. using namespace std;
  4.  
  5. int recInvert(char s[], char s1[])
  6. {
  7.         s1[strlen(s)-1]=s[0];
  8.         if(strlen(s)>1)recInvert(s+1, s1);
  9.         return 0;
  10. }
  11.  
  12. int main()
  13. {
  14.         char str[50];
  15.         char out[50];
  16.         strcpy(str, "this is a test");
  17.         recInvert(str, out);
  18.         cout<<out<<endl;
  19.         return 0;
  20. }



"I have never let my schooling interfere with my education." Mark Twain
PM Quote
Avatar
disperate (Normal User)
Newbie


Messaggi: 8
Iscritto: 02/04/2010

Segnala al moderatore
Postato alle 9:21
Sabato, 03/04/2010
grazie matthew mi hai salvata^^ ma potresti spiegarmi l'utilitÓ di questa ricorsione MMM io ho sentito dire k serve per qnd far˛ gli alberi...

PM Quote
Avatar
disperate (Normal User)
Newbie


Messaggi: 8
Iscritto: 02/04/2010

Segnala al moderatore
Postato alle 13:03
Sabato, 03/04/2010
ho modificato un poketto il codice x˛ mi da dei segni strani allego codice e stamp dell eseguibile
Codice sorgente - presumibilmente C++

  1. #include  <iostream>
  2. #include <cstring>
  3. using namespace std;
  4.  
  5. int recInvert(char [], char []);
  6. #define MAX 20
  7.  
  8. int main()
  9. {
  10.     char s[MAX];
  11.     char s1[MAX];
  12.     int n;
  13.    
  14.     cout<<"Dammi la stringa da invertire: ";
  15.     cin.getline(s,MAX);
  16.     recInvert(s, s1);
  17.     cout<<s1<<endl;
  18.  
  19.     system("pause");
  20.     return 0;
  21. }
  22. int recInvert(char s[], char s1[])
  23. {
  24.     s1[strlen(s)-1]=s[0];
  25.     if(strlen(s)>1)recInvert(s+1, s1);
  26.     return 0;
  27. }



disperate ha allegato un file: Immagine.JPG (19170 bytes)
Clicca qui per guardare l'immagine

Ultima modifica effettuata da disperate il 03/04/2010 alle 13:04
PM Quote
Avatar
disperate (Normal User)
Newbie


Messaggi: 8
Iscritto: 02/04/2010

Segnala al moderatore
Postato alle 15:50
Sabato, 03/04/2010
qualcuno a qualke idea??

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo