Porque al compilar me vota un montooon de errores.... creo que estoy usando mal el tipo de dato vector<vector>
Código:
#include <iostream> #include <iomanip> #include <vector> #include <cmath> #include <cstdlib> using namespace std; unsigned leerdato(){ double n; try{ cout<<"Numero de elementos "; cin>>n; if(fmod(n,1)!=0) throw 1; if (n<0) throw 2; }catch (int e){ switch(e){ case 1: cout<<"El numero debe ser entero"<<endl; break; case 2: cout<<"El numero debe ser positivo"<<endl; break; } return leerdato(); } return (unsigned) n; } void leerlim(double &li, double &ls){ try{ cout<<"Limites inferior y superior: "; cin>>li>>ls; if(li>=ls) throw 1; }catch (int e){ cout<<"El limite inferior debe ser menor al superior !"<<endl; leerlim(li,ls); } } vector< vector<int> > &randMatE(unsigned n, int li, int ls){ unsigned j; int d=ls-li; vector< vector<int> > *a; a= new vector<vector<int> >(n); for (j=0; j<n; j++){ (*a)[j]=(int)((double)rand()/RAND_MAX*d+li); } return *a; } void mostrarVector(vector<vector <double> > x,unsigned n) { unsigned i; for(i=0;i<n;i++) { cout<<setw(8)<<setprecision(5)<< x[i]; if((i+1)%10==0) cout<<endl;} cout<<endl; } double promedio(vector<vector<double> >x, unsigned n) { double s=0; if(n==0) throw" ¡Error! Vector vacío."; for(unsigned i=0;i<n;i++) s+=x[i]; return s/n; } double dstd(vector<vector <double> >x, unsigned n) { double s=0; double prom=promedio(x,n); if(n==1) throw"¡Error! No existe desviación estándar"; for(unsigned i=0;i<n;i++) s+=(prom-x[i])*(prom-x[i]); return sqrt(s/(n-1)); } void mostrardesv(vector<vector <double> >x){ cout<<"La desviacion resultante es = "<<dstd(x)<<endl; } int main(){ unsigned n; double li,ls; vector < vector<double> > x; cout<<"***** Desviación estándar *****"<<endl; uno: n=leerdato(); if (n==0) goto dos; leerlim(li,ls); x=randMatE(n,li,ls); mostrarVector(x,n); mostrardesv(x); goto uno; dos: cout<<"Programa terminado"; return 0; }