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

    Mi dite cosa sbaglio???

    RAGAZZI MI DITE COSA SBAGLIO IN QUESTO PROGRAMMA???PERCHE' MI ESCE??FACENDO IL DEBUG NON CAPISCO IL MESSAGGIO



    #include <iostream>
    #include <stdlib.h>

    using namespace std;

    int main()
    {
    char v[100];
    int n;
    char succ,prec;

    cout<<"Inserisci riempimento\n";
    cin>>n;
    cout<<"Inserisci i "<<n<<" elementi\n";
    for(int i=0;i<n;i++)
    cin>>v[i];

    cout<<"Inserisci prec\n";
    cin>>prec;
    cout<<"Inserisci succ\n";
    cin>>succ;
    //se lo fai con il while e' la stessa cosa while(i<n)...........else i++;
    for(int j=0;j<n;j++)
    if(prec==v[j])
    {
    for(int i=n;i>j;i++)
    v[i]=v[i-1];
    v[j]=succ;
    n++;
    }

    for(int q=0;q<n;q++)
    cout<<v[q];

    system("PAUSE");
    return 0;
    }

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Hai semplicemente sconfinato un po' troppo l'array!
    Incrementi la variabile i invece di decrementarla, nel for in basso (istruzione in grassetto, già corretta):
    codice:
    #include <iostream> 
    #include <stdlib.h> 
    
    using namespace std; 
    
    int main() { 
       char v[100]; 
       int n; 
       char succ,prec; 
    
       cout<<"Inserisci riempimento\n"; 
       cin>>n; 
       cout<<"Inserisci i "<<n<<" elementi\n"; 
       for(int i=0;i<n;i++) 
          cin>>v[i]; 
    
       cout<<"Inserisci prec\n"; 
       cin>>prec; 
       cout<<"Inserisci succ\n"; 
       cin>>succ; 
       //se lo fai con il while e' la stessa cosa while (i<n)...........else i++; 
       for(int j=0;j<n;j++) 
          if(prec==v[j]) { 
             for(int i=n;i>j;i--) 
             v[i]=v[i-1]; 
             v[j]=succ; 
             n++; 
          } 
    
       for(int q=0;q<n;q++) 
       cout<<v[q]; 
    
       system("PAUSE"); 
       return 0; 
    }
    Poi però non ho capito cosa intendi fare con l'istruzione n++: n è la dimensione dell'array... perchè la vai a modificare? Modificandola, il for sotto sconfina la dimensione effettiva dell'array...

    Forse dovresti anche spiegare cosa dovrebbe fare il tuo programma...

    PS: La prossima volta inserisci il codice fra i tag [CODE*][/CODE*] (senza gli asterischi che ho messo io).


    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

  3. #3
    Utente di HTML.it L'avatar di MMarzia
    Registrato dal
    Mar 2001
    Messaggi
    1,781

    Re: Mi dite cosa sbaglio???

    sicuramente il titolo del 3d: il linguaggio va sempre specificato, come da regolamento
    io sono festosamente cicciottello :: e. cartman

    t'amo senza sapere come, nè quando nè da dove,
    t'amo direttamente senza problemi nè orgoglio:
    così ti amo perchè non so amare altrimenti

  4. #4
    Originariamente inviato da LeleFT
    Hai semplicemente sconfinato un po' troppo l'array!
    Incrementi la variabile i invece di decrementarla, nel for in basso (istruzione in grassetto, già corretta):
    codice:
    #include <iostream> 
    #include <stdlib.h> 
    
    using namespace std; 
    
    int main() { 
       char v[100]; 
       int n; 
       char succ,prec; 
    
       cout<<"Inserisci riempimento\n"; 
       cin>>n; 
       cout<<"Inserisci i "<<n<<" elementi\n"; 
       for(int i=0;i<n;i++) 
          cin>>v[i]; 
    
       cout<<"Inserisci prec\n"; 
       cin>>prec; 
       cout<<"Inserisci succ\n"; 
       cin>>succ; 
       //se lo fai con il while e' la stessa cosa while (i<n)...........else i++; 
       for(int j=0;j<n;j++) 
          if(prec==v[j]) { 
             for(int i=n;i>j;i--) 
             v[i]=v[i-1]; 
             v[j]=succ; 
             n++; 
          } 
    
       for(int q=0;q<n;q++) 
       cout<<v[q]; 
    
       system("PAUSE"); 
       return 0; 
    }
    Poi però non ho capito cosa intendi fare con l'istruzione n++: n è la dimensione dell'array... perchè la vai a modificare? Modificandola, il for sotto sconfina la dimensione effettiva dell'array...

    Forse dovresti anche spiegare cosa dovrebbe fare il tuo programma...

    PS: La prossima volta inserisci il codice fra i tag [CODE*][/CODE*] (senza gli asterischi che ho messo io).


    Ciao.
    No scusa....quell'errore l'ho fatto adesso ma non era quello il problema che poi ho capito cosa fosse...grazie tutti!

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.