PDA

View Full Version : c++ - problema array


Davidino.gbr91
01-10-2008, 14:46
inseriti 5 numeri da tastiera effettuare la somma tra il 1 numero inserito e l'ultimo;tra il 2 inserito e il 4;moltiplicare le somme per il 3 elemento se il 3 elemento è un numero paro, altrimenti dividere

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
int A[5],i,somma1,somma2,mol1,mol2,div1,div2;
for (i=0;i<5;i++)
{
cout <<"inserisci numero: ";
cin>> A[i];
}
somma1= A[1]+A[5];
somma2= A[2]+A[4];
cout <<"\n la prima somma e: "<<somma1;
cout <<"\n la seconda somma e: "<<somma2;
if (A[3] %2 ==0)
{
mol1=A[3]*somma1;
mol2=A[3]*somma2;
cout <<"\n la prima moltiplicazione e: "<<mol1;
cout <<"\n la seconda moltiplicazione e: "<<mol2;
}
else
{
div1= somma1/A[3];
div2= somma2/A[3];
cout <<"\n la prima divisione e: "<<div1;
cout <<"\n la seconda divisione e: "<<div2;
}
system("PAUSE");
return EXIT_SUCCESS;
}


ho un problema con gli array...non riesco a far sommare la posizione 1 con la posizione 5...sicuramente l'errore e nel punto

somma1= A[1]+A[5];
somma2= A[2]+A[4];

banryu79
01-10-2008, 15:03
per forza, gli indici degli array in C++ si contano a partire da 0 e l'ultimo indice valido di un array di j elementi è j-1.

Quindi avendo dichiarato questo:

int A[5],i,somma1,somma2,mol1,mol2,div1,div2;

quando fai questo:

somma1= A[1]+A[5];

sfori l'array.

Inoltre il primo elemento è A[0].

Davidino.gbr91
01-10-2008, 15:05
quindi in teoria dichiarando

A[6]

risolverei il problema?

banryu79
01-10-2008, 15:08
quindi in teoria dichiarando

A[6]

risolverei il problema?
Se vuoi avere un array di 6 elementi sì.
Invece credo che tu voglia averlo di 5.

Correggi gli indici con cui accedi agli elementi nell'array, non la dichiarazione di dimensione dell'array.
Ti è chiara la differenza?

Davidino.gbr91
01-10-2008, 15:09
somma1= A[1]+A[5];
somma2= A[2]+A[4];


dovrei correggere questo ma è sempre stato il mio problema :muro:

banryu79
01-10-2008, 15:12
somma1= A[1]+A[5];
somma2= A[2]+A[4];

dovrei correggere questo ma è sempre stato il mio problema :muro:

Bene allora impara a farlo giusto una volte per tutte ;)
Rileggiti il mio primo post e prova a correggere il codice che hai appena indicato.

Davidino.gbr91
01-10-2008, 15:14
somma1= A[0]+A[4];
somma2= A[1]+A[3];

perfetto ti ringrazio ora il programma riesce :D

banryu79
01-10-2008, 15:15
Bravo ragazzo, ciao :)