PDA

Visualizza la versione completa : Mi dite cosa sbaglio???


Elninno
13-01-2005, 20:57
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;
}

LeleFT
13-01-2005, 21:06
Hai semplicemente sconfinato un po' troppo l'array!
Incrementi la variabile i invece di decrementarla, nel for in basso (istruzione in grassetto, gi corretta):


#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... :bh:

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


Ciao. :ciauz:

MMarzia
13-01-2005, 22:53
sicuramente il titolo del 3d: il linguaggio va sempre specificato, come da regolamento (http://forum.html.it/forum/showthread.php?threadid=762409)

Elninno
14-01-2005, 08:41
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):


#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... :bh:

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


Ciao. :ciauz:

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

Loading