Questo programma l'avevo già postato una quindicina di giorni fa se non vado errato..
il programma funzione perfettamente, eccetto per il calcolo della radice come limite di funzione...ho tentato in più modi di scrivere il programmino..per ora vi posto questa versione...
Vi sarei molto grato se qualcuno potesse modificare il programma in modo che funzioni completamente..
P.S=Non è considerato valido l'uso di puntatori
Uso della sola procedura void

Per il limite di una successione basarsi su questo codice:
codice:
...
Y=1;
do
{Y=(Y + X /Y)/2;
 cout<<Y<<"\n";
}while(fabs((Y*Y-X)/X)>E);
Programma da modificare:
codice:
/*

Si scriva un programma che, assegnato in ingresso, ad un vettore V, un insieme
di n valori interi, calcoli la somma som ed il prodotto prod degli elementi del
vettore V e visualizzi quindi i valori di som e prod. Di ogni elemento del vettore,
si calcoli inoltre la radice quadrata in due modi distinti: utilizzando la funzione
di libreria sqrt e scrivendo esplicitamente le istruzioni per il calcolo della
radice quadrata come limite di una successione, con precisione assegnata in ingresso.
Si produca quindi, sul supporto di uscita, una tabella che per ogni valore V[i]
riporti i valori di sqrt(V[i]) e della radice di V[i] calcolata nel secondo modo.
Si strutturi il programma in sottoprogrammi (ad esempio: input, somma, prodotto,
radice, output).

ESEMPIO
INPUT
n = 4
V=  2 4 6 8
errore tollerato per il calcolo della radice quadrata = 0.1

OUTPUT
la somma degli elementi del vettore e' = 20
il prodotto degli elementi del vettore e' = 384

V[i]          RQ1[i]            RQ2[i]
2               1.41421         1.41667
4               2               2.00061
6               2.44949         2.44949
8               2.82843         2.82847
*/

#include<iostream>
using namespace std;
#include<stdlib.h>
#include<math.h>

//Prototipi delle funzioni
void input(int &n, int v1[], double&E);
void somma(int n,int v1[],int &som);
void prodotto(int n, int v1[], int &prod);
void radice_sqrt(int n, int v1[], double rq1[]);
void radice_newton(int &n,int v1[],double E,double rq2[]);
void output(int som, int prod,int n, int v1[], double rq1[],double rq2[]);


int main()
{
    //Dichiarazioni
    int v1[100];
    int n;
    int som;
    int prod;
    double rq1[100];
    double E;
    double rq2[100];
    
    //Chiamate delle funzioni
    input(n,v1,E);
    somma(n,v1,som);
    prodotto(n,v1,prod);
    radice_sqrt(n,v1,rq1);
    radice_newton(n,v1,E,rq2);
    output(som,prod,n,v1,rq1,rq2);
    
    
    cout<<"\n\n";
    system("PAUSE");
    return 0;
}

void input(int &n, int v1[], double&E)
{
    int i;
    cout<<"N = ";
    cin>>n;
    
    cout<<"V= ";
    for(i=0;i<n;i++)
    {
        cin>>v1[i];
    }
    cout<<"\nerrore tollerato per il calcolo della radice quadrata = ";
    cin>>E;
}

void somma(int n,int v1[],int &som)
{
    int i;
    som = 0;
    for(i=0;i<n;i++)
    {
        som = som + v1[i];
    }
}

void prodotto(int n, int v1[], int &prod)
{
    int i;
    prod=1;
    for(i=0;i<n;i++)
    {
        prod = prod * v1[i];
    }
}

void radice_sqrt(int n, int v1[], double rq1[])
{
     int i;
     for(i=0;i<n;i++)
     {
         rq1[i] = sqrt(double(v1[i]));
     }
}

void radice_newton(int &n,int v1[],double E,double rq2[])
{     
    int i;
    double Y;
    int k;
    Y=1; 
    if(i<n && fabs((Y*Y-v1[i])/v1[i])>E)
     {   Y=(Y+v1[i]/Y)/2;
         i++;
     }
     else
     {
         rq2[n]=Y;
         n++;
     }
}       

void output(int som, int prod,int n, int v1[], double rq1[],double rq2[]) 
{
    int i;//indice di scorrimento del vettore
    
    cout<<"la somma degli elementi del vettore e' = " << som<<"\n";
    cout<<"il prodotto degli elementi del vettore e' = "<<prod<<"\n";
    
    cout<<"V[i]\t\t RQ1[i]\t\t RQ2[i]\n";
    for(i=0;i<n;i++)
    {
        cout<<v1[i]<<"\t\t"<<rq1[i]<<"\t\t"<<rq2[i]<<"\n";
    }
}
Grazie a tutti come al solito...