Re: Programma C++ Vettori
Potresti far sì che il programma crei altri due vettori oltre a quello principale,uno di (N/2)+1 posti per le componenti pari,l'altro con con N/2 posti.
Poi,potresti far sì che il programma scorra gli elementi del vettore utilizzato una variabile contatore i che aumenti di 1 ogni ciclo fino a che i non sia uguale a N,e li divida per 2;se il resto è 0,allora il programma potrebbe assegnare potrebbe assegnare il valore contenuto nella parte del vettore principale alla componenti di posto i/2 del vettore delle componenti pari;se il resto è diverso da 0,allora che le assegni alla componenti di posto (i-1)/2 del vettore delle componenti dispari.
Ad esempio: i=0,e viene richiamata la componente di posto 0 del vettore principale,uguale a 0;questa viene divisa per due;il resto è 0;si divise dunque i per 2 e il risultato è 0;dunque la componente di posto 0 del vettore principale viene assegnata alla componente di posto 0 del vettore delle componenti pari.i=1;viene richiamata la componente di posto 1 del vettore principale,uguale a 1;questa viene divisa per due;il resto è 1,diverso da 0;si divide dunque i-1 per 2,e il risultato è 0;dunque la componente di posto 1 del vettore principale viene assegnata alla componente di posto 0 del vettore delle componenti dispari.
Re: Programma C++ Vettori
è proprio quello che ho fatto io, però non torna. TI posto il codice.
#include <iostream.h>
int vett[150];
int vetta[150];
int vettb[150];
int pari();
int dispari();
int n,j=0,k=0,conta=0,conta2=0;
int main()
{
cout<<"Inserisci la dimensione del vettore"<<endl;
cin>>n;
for (int i=0;i<n;i++)
{
cout<<"Inserisci un numero"<<endl;
cin>>vett[i];
}
for (int i=0;i<n;i++)
{
if (vett[i]%2==0)
{
conta++;
pari();
}
if (vett[i]%2!=0)
{
conta2++;
dispari();
}
}
cout<<"I componenti di posto pari sono "<<vett[j]<<endl;
cout<<"I componenti di posto dispari sono "<<vett[k]<<endl;
system ("pause");
return 0;
}
int pari()
{
for (int i=0;i<conta;i++)
{
vetta[j]=vett[i];
j++;
}
return 0;
}
int dispari()
{
for (int i=0;i<conta2;i++)
{
vettb[k]=vett[i];
k++;
}
return 0;
}
Re: Programma C++ Vettori
Citazione:
Dark_Devil ha scritto sab, 18 marzo 2006 alle 07:03
è proprio quello che ho fatto io, però non torna. TI posto il codice.
#include <iostream.h>
int vett[150];
int vetta[150];
int vettb[150];
int pari();
int dispari();
int n,j=0,k=0,conta=0,conta2=0;
int main()
{
cout<<"Inserisci la dimensione del vettore"<<endl;
cin>>n;
for (int i=0;i<n;i++)
{
cout<<"Inserisci un numero"<<endl;
cin>>vett[i];
}
for (int i=0;i<n;i++)
{
if (vett[i]%2==0)
{
conta++;
pari();
}
if (vett[i]%2!=0)
{
conta2++;
dispari();
}
}
cout<<"I componenti di posto pari sono "<<vett[j]<<endl;
cout<<"I componenti di posto dispari sono "<<vett[k]<<endl;
system ("pause");
return 0;
}
int pari()
{
for (int i=0;i<conta;i++)
{
vetta[j]=vett[i];
j++;
}
return 0;
}
int dispari()
{
for (int i=0;i<conta2;i++)
{
vettb[k]=vett[i];
k++;
}
return 0;
}
Forse nel codice che hai postato le funzioni "pari" e "dispari" non sono strutturate benissimo.
Dopo
if (vett[i]%2==0)
potresti inserire l'istruzione:
vetta[j]=vett[i];
e quindi
j++;
e dopo
if (vett[i]%2!=0)
dunque
vettb[k]=vett[i];
k++;
Mi scuso nel caso questo suggerimento si riveli sbagliato http://forumtgmonline.futuregamer.it...on_biggrin.gif .
Re: Programma C++ Vettori
Re: Programma C++ Vettori
Citazione:
Dark_Devil ha scritto ven, 17 marzo 2006 alle 22:43
uno composto dalle componenti di POSTO paridel vettore dato, l'altro composto da quelle di POSTO dispari.
è
i%2==0
e non
vett[i]%2==0
ecc...
e non serve contare nulla...
Re: Programma C++ Vettori
Citazione:
Frydon ha scritto sab, 18 marzo 2006 alle 19:11
Citazione:
Dark_Devil ha scritto ven, 17 marzo 2006 alle 22:43
uno composto dalle componenti di POSTO paridel vettore dato, l'altro composto da quelle di POSTO dispari.
è
i%2==0
e non
vett[i]%2==0
ecc...
e non serve contare nulla...
http://forumtgmonline.futuregamer.it...ons/ahsisi.gif
E poi se effettivamente usi i vector, ma ne dubito, usi push_back e sei apposto. http://forumtgmonline.futuregamer.it...s/lecchino.gif
Se usi gli arrai o li allochi con la dim all'inizio o li fai dinamici.
int* a
e poi decidi la dimensione di a con una invocazione new int[dim].
Re: Programma C++ Vettori
Citazione:
Frydon ha scritto sab, 18 marzo 2006 alle 19:11
Citazione:
Dark_Devil ha scritto ven, 17 marzo 2006 alle 22:43
uno composto dalle componenti di POSTO paridel vettore dato, l'altro composto da quelle di POSTO dispari.
è
i%2==0
e non
vett[i]%2==0
ecc...
e non serve contare nulla...
Me ne sono accorto dopo, facendo vett[i]%2 trovo il resto del numero dentro la posizione i e non della posizione stessa! http://forumtgmonline.futuregamer.it...on_biggrin.gif