PDA

View Full Version : [C++]aiuto per programma con array


birell
27-11-2006, 16:48
ciao a tutti sono novello !!!...
ho un problema nel fare questo programma..

sembrava semplice ma non ne vengo a capo ... sono alle prime armi con il c++...

Chiedere all'utente i valori di un vettore dimensione 10. Finito l'inserimento stampare a video solo i valori pari inseriti.

l'avevo pensato cosi :

#include <iostream>
using namespace std;

int main()
{
int v[10];
int cont;

for (cont =1; cont <= 10; cont ++)

{
cout << "inserire v[cont]: ";
cin >> v[cont];
}

cont = 1;

for (cont =1; cont <=10; cont ++)

{
if (cont % 2 == 0)

cout << cont << " E' Pari";
}

return 0;

}


cosi com'è il programma ovviamente mi scrive i valori pari da 1 a 10
visto che nel secondo ciclo riparto da 1 fino a 10 ...
quindi mi scrive 2 è pari 4 è pari 6 è pari ecc ecc...

devo assegnare da tastiera un numero intero ad ogni indice del vettore con un ciclo (10 inserimenti da tastiera) poi con una altro ciclo far visualizzare solo i numeri pari...

non riesco a collegare i due cicli in modo che il primo mi memorizzi V[1] V[2] ecc ecc e il secondo mi visualizzi tutti i numeri pari inseriti

come posso fare ??
mi potete aiutare ???

grazie a tutti

andbin
27-11-2006, 17:00
#include <iostream>
using namespace std;

int main()
{
int v[10];
int cont;

for (cont =1; cont <= 10; cont ++)

{
cout << "inserire v[cont]: ";
cin >> v[cont];
}

cont = 1;

for (cont =1; cont <=10; cont ++)

{
if (cont % 2 == 0)

cout << cont << " E' Pari";
}

return 0;

}Ci sono alcune cose che non vanno.

Per iniziare, negli array gli indici partono da 0 (zero).

Quindi se fai
for (cont =1; cont <= 10; cont ++)

mi sta pure bene ma poi devi fare
cin >> v[cont-1];

oppure (come preferisco io)
for (cont =0; cont < 10; cont ++)

e poi usare
cin >> v[cont];


Come seconda cosa, nel tuo secondo ciclo for stampi il valore quando il valore dell'indice è pari, non quando il valore dell'elemento è pari (e suppongo che tu voglia fare quest'ultima cosa).
Quindi dovresti fare:
if (v[cont] % 2 == 0)

birell
27-11-2006, 17:24
grazie al tuo aiuto andbin ho risolto !!

ecco il prog funzionante per chi potrebbe trovarsi nel mio stesso problema :

/*
Chiedere all'utente tutti i valori di un vettore di dimensione
10. Finito l'inserimento stampare a video solo i valori pari
inseriti.
*/


#include <iostream>
using namespace std;

int main()
{
int v[10]; // vettore dimensione 10
int cont; // dichiara variabile cont
cont =0; // assegna a cont il valore 1

for (cont =0; cont <= 9; cont ++) //(valore di inizio; condizione di ciclo; incremento)

{
cout << "inserire v[cont]: "; // visualizza quello tra virgolette
cin >> v[cont]; // inserimento da tastiera
}

cont = 0;

for (cont =0; cont <=9; cont ++) //(valore di inizio; condizione di ciclo; incremento)

{
if (v[cont] % 2 == 0) // utile per individuare numeri pari

cout << v[cont] << " E' Pari";
}

return 0;

}

grazie ancora