eliokls (Normal User)
Newbie
Messaggi: 4
Iscritto: 05/01/2009
|
Ciao a tutti, devo copiare gli elementi pari di un vettore di double vd in secondo vettore vd2 , ma non ho idea di come fare, dato che il resto della divisione con % non si puo fare sui double , ho provato a convertirli mettendo (int) ma mi viene sempre 0 . Se qualcuno puo anche darmi il contatto msn per discutere meglio su come procedere ne sarei grato.
|
|
iGuLy (Ex-Member)
Pro
Messaggi: 66
Iscritto: 17/05/2007
|
Postato originariamente da eliokls:
Ciao a tutti, devo copiare gli elementi pari di un vettore di double vd in secondo vettore vd2 , ma non ho idea di come fare, dato che il resto della divisione con % non si puo fare sui double , ho provato a convertirli mettendo (int) ma mi viene sempre 0 . Se qualcuno puo anche darmi il contatto msn per discutere meglio su come procedere ne sarei grato. |
Ma se vuoi discuterne su msn perchè hai postato?
Comunque inizia a porti delle domande sul problema da risolvere e poi prova a mettere giù del codice.
Per esempio come fai a copiare tutti gli elementi
Codice sorgente - presumibilmente C/C++ |
for (...)
vd2[i] = vd[i];
|
Come fai a verificare se un numero è pari:
Codice sorgente - presumibilmente C/C++ |
|
|
eliokls (Normal User)
Newbie
Messaggi: 4
Iscritto: 05/01/2009
|
posso usare solo stdlib.h e stdio.h .... mi aggiungi su msn ? MSN: elio.kls @ gmail . com
|
|
iGuLy (Ex-Member)
Pro
Messaggi: 66
Iscritto: 17/05/2007
|
Postato originariamente da eliokls:
posso usare solo stdlib.h e stdio.h .... mi aggiungi su msn ? MSN: elio.kls @ gmail . com |
Scusa ho provato solo ora a fare il programmino perchè non ero al pc. Comunque ti basta fare anche una cosa del genere per verificare se è pari:
Codice sorgente - presumibilmente C/C++ |
if ((int)vd[..] % 2 == 0)
vd2[..] = vd[..];
}
|
|
|
eliokls (Normal User)
Newbie
Messaggi: 4
Iscritto: 05/01/2009
|
avevo gia provato qst soluzione.. e mi da sempre 0 e dunque o sempre pari o sempre dispari
|
|
iGuLy (Ex-Member)
Pro
Messaggi: 66
Iscritto: 17/05/2007
|
Postato originariamente da eliokls:
avevo gia provato qst soluzione.. e mi da sempre 0 e dunque o sempre pari o sempre dispari |
Scusa ma a me funziona perfettamente:
Codice sorgente - presumibilmente C |
#include <stdio.h> int main() { int y = 0; double vd[10] = {0, 1, 2, 3, 4, 5, 6, 8, 9, 10}; double vd2[10] = {0}; // Primo Vettore printf("Vettore iniziale:\n"); for (int i = 0; i < 10; i++) // Copio gli elementi pari nell'altro for (int i = 0; i < 10; i++) { // Verifico se è pari if ((int)vd[i] % 2 == 0 && (int)vd[i] != 0) vd2[y++] = vd[i]; } // Secondo vettore printf("\n\nVettore con elementi pari:\n"); for (int i = 0; i < y; i++) getchar(); return 0; }
|
Anche se credo sia meglio usare la fmod(). Ultima modifica effettuata da iGuLy il 06/01/2009 alle 0:13 |
|
eliokls (Normal User)
Newbie
Messaggi: 4
Iscritto: 05/01/2009
|
non funziona
Codice sorgente - presumibilmente C |
#include <stdio.h> #include <stdlib.h> #define DIM_1 3 #define DIM_2 3 int menu ( int * p); void ins_vett(double * v, int d); void copia_pari(double * vd2, double * vd, int d); int main () { double vett[DIM_1]; double vett2[DIM_2]; int c; do { menu (&c); if (c>3 || c <=0 ) /*controllo se vengono inseriti */ { printf ("## scelta errata ##"); /*valori non inclusi nel menu*/ } switch (c) { case 1 : ins_vett(vett, DIM_1); break; case 2 : copia_pari(vett2,vett, DIM_2); break; } } while (c != 3) ; system ("pause"); } int menu (int *p) { int h; printf ("\n1 - inserisci un vettore: "); printf ("\n2 - copia i numeri pari del vettore inserito "); scanf ("%d", &h); *p = h; } void ins_vett(double * v, int d) { int i; for (i=0;i<d;i++) { printf("\n Inserisci l'elemento %d : ",i +1 ); scanf("%d",&v[i]); } } void copia_pari(double * vd2, double * vd, int d) { int i; int y; for (i=0; i<d;i++) { if ((int)vd[i] % 2 == 0) vd2[i] = vd[i]; printf ("\n %d° elemento pari del vettore che hai inserito : %d \n", i +1 , vd2 [i ]); } }
|
|
|
iGuLy (Ex-Member)
Pro
Messaggi: 66
Iscritto: 17/05/2007
|
Il metodo che ti ho messo io funziona. Adesso tocca a te, se lo vuoi usare, adattarlo al tuo programma.
|
|