Overflow (Normal User)
Expert
Messaggi: 334
Iscritto: 11/01/2008
|
quando dichiari gli array fai così:
Codice sorgente - presumibilmente C/C++ |
char s[MAX]="";
char s1[MAX]="";
|
perchè quando si dichiara una variabile in C++ essa assume dei valori a casaccio, e quindi quando dichiari gli array ci sono valori in più, così inizializzi a 0 utto l'array, oppure usa la funzione memset
Codice sorgente - presumibilmente Plain Text |
memset(s,0,MAX);
memset(s1,0,MAX);
|
|
|
disperate (Normal User)
Newbie
Messaggi: 8
Iscritto: 02/04/2010
|
Overflow grazie grazie di cuore!!!!!!!!!
|
|
Matthew (Member)
Expert
Messaggi: 387
Iscritto: 29/01/2007
|
Postato originariamente da disperate:
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... |
* Algoritmi su alberi
* valutazione di funzioni matematiche
* gestione di aggregati eterogenei di dati, in combinazione con il polimorfismo
* gestione di dati in formato XML. Grazie alle API fornite con tutti i linguaggi di programmazione moderni, è possibile formulare praticamente tutti gli algoritmi di lettura/creazione XML in maniera ricorsiva.
* algoritmi di ordinamento efficienti come Quicksort e Merge sort o algoritmi di ricerca come la ricerca binaria possono essere formulati in maniera ricorsiva, anche con tipi di dati come le liste a puntatori.
* stesura di algoritmi che lavorano con la tecnica di backtracking.
* descrizione di curve frattali.
La ricorsione ti permette di risolvere problemi complessi con poche linee di codice, ma in genere occupa un sacco di memoria e non ha ottime prestazioni.
Ultima modifica effettuata da Matthew il 03/04/2010 alle 17:09 |
|
disperate (Normal User)
Newbie
Messaggi: 8
Iscritto: 02/04/2010
|
Matthew grazie e approfitto per fare gli auguri di buona pasqua a tutti ^^
|
|
ciccio95 (Normal User)
Newbie
Messaggi: 3
Iscritto: 19/05/2012
|
guarda ieri ho avuto il compito proprio su queste cose...
ti scrivo tutto il programma in c++ però!
#include <iostream>
using namespace std;
void inverso(int vett[], int d,int b);
void stampa(int vett[], int n);
int main()
{
int vett[99],n,i,d=0,b;
cout<<"Quanti numeri vuoi inserire?";
cin>>n;
b=n-1;
for(i=0;i<n;i++)
cin>>vett;
inverso(vett,d,b);
stampa(vett,n);
system("PAUSE");
}
void inverso(int vett[], int d,int b)
{
int z=0;
if(d>b)
return;
else
{
z=vett[d];
vett[d]=vett;
vett=z;
inverso(vett,d+1,b-1);
}
}
void stampa(int vett[], int n)
{
int i;
for(i=0;i<n;i++)
cout<<vett;
}
|
|
osharko (Normal User)
Pro
Messaggi: 124
Iscritto: 16/04/2011
|
Postato originariamente da ciccio95:
guarda ieri ho avuto il compito proprio su queste cose...
ti scrivo tutto il programma in c++ però!
#include <iostream>
using namespace std;
void inverso(int vett[], int d,int b);
void stampa(int vett[], int n);
int main()
{
int vett[99],n,i,d=0,b;
cout<<"Quanti numeri vuoi inserire?";
cin>>n;
b=n-1;
for(i=0;i<n;i++)
cin>>vett;
inverso(vett,d,b);
stampa(vett,n);
system("PAUSE");
}
void inverso(int vett[], int d,int b)
{
int z=0;
if(d>b)
return;
else
{
z=vett[d];
vett[d]=vett;
vett=z;
inverso(vett,d+1,b-1);
}
}
void stampa(int vett[], int n)
{
int i;
for(i=0;i<n;i++)
cout<<vett;
} |
nel main non dovresti fare cin>>n?
non dovresti mettere anche return 0 dato che parli di un int main?
stessa cosa nel void stampa dovrebbe essere cout<<vet;
e ultima cosa, nel void inverso cosa dovrebbe fare?
|
|
ciccio95 (Normal User)
Newbie
Messaggi: 3
Iscritto: 19/05/2012
|
aspetta questo forum cancella le cose..
nel for devi inserire la variabile vett di i tra parentesi quadra
poi nella funzione inverso è così
z=vett di b tra parentesi quadra
vett[d]=vett di b tra parentesi quadra
vett di b tra parentesi quadra=z
infine nel ciclo di stampaggio mettere cout<<vett i tra parentesi quadra
questo forum mi cancellava le cose nelle parentesi quadre!
Ultima modifica effettuata da ciccio95 il 24/05/2012 alle 16:06 |
|
ciccio95 (Normal User)
Newbie
Messaggi: 3
Iscritto: 19/05/2012
|
ti spiego cosa succede...nel main se non metti return 0 non ci fa niente..nel void inverso lui esegue gli scambi...cioè nel primo spazio del vettore lui mette l'ultimo numero k hai inserito...e nell ultimo spazio del vettore mette il primo numero che hai inserito e così via!
|
|