ciao a tutti ragazzi
sono praticamente all'inizio della programmazione e avrei due domandine si questo programma creato da me da due esempi diversi. Voglio con questo programma inizializzare un arrai, e visulaizzare gli elementi in esso contenuto e poi sommarli e visualizzare la somma.
Poi con un'altra funzione cambiare un determinato elemento e rialcolare la somma

codice:
#include <iostream>
#include <iomanip>
using namespace std;

void somma(int[],int);
void modificaelemento (int);
int total=0;

int main ()
  { const int dimensionearray= 10;
    int a[dimensionearray]={1,2,3,4,5,6,7,8,9,10};
    int i ;

    cout<<"i valori dell'array sono:\n";

    for (i=0; i<dimensionearray;i++)
    	    cout<<a[i];

   somma(a,dimensionearray);

     cout<<"\nrisultato della somma è:"<<total<<endl;


     cout<<"\nvisualizzo :"<<a[4]<<endl;

     modificaelemento(a[4]);

     cout<<"\ncome è cambiata la somma:"<<total<<endl;
           somma(a,dimensionearray);

        return 0;
   }

void somma(int b[],int dimensionedellarray)
		{
	for (int j=0;j<dimensionedellarray;j++)
			total += b[j];
            }
void modificaelemento (int g)
  { cout<<"valore in modificaelemento è:" << (g+=1)<<endl;
     }
mi esce questo con l'errore del 55: visto che vorrei che uscisse il 56
codice:
i valori dell'array sono:
12345678910
risultato della somma è:55

visualizzo :5
valore in modificaelemento è:6

come è cambiata la somma:55

altra cosa che con la teoria non m isono riuscito a spiegare:
perchè se metto all'inizio ,nella dichiarazione delle funzioni int, anzicchè void mi esce errore?