Título: Ayuda en este codigo por favor
Publicado por: MellaSystems en 4 Mayo 2015, 23:29 pm
Tengo este codigo en C++: #include <iostream> #include <stdlib.h> using namespace std; main(){ int i, j, filas, columnas, suma_dp=0; cout << "Ingrese el n\243mero de filas de la matriz: "; cin >> filas; cout << "Ingrese el n\243mero de columnas de la matriz: "; cin >> columnas; if((filas < 1 || columnas < 1) || (filas > 20 || columnas > 20)){ cout << "La matriz no puede ser menor que 1 ni mayor que 20\n\n"; } else{ cin.get(); float **a = new float*[filas]; cout << endl; for(i=0; i < filas; i++){ a[i] = new float[columnas]; for(j=0; j < columnas; j++){ cout << "Ingrese el elemento A[" << i + 1 << "][" << j + 1 << "]: "; cin >> a[i][j]; } } cout << endl; cout << "La matriz digitada es: " << endl; for(i=0; i < filas; i++){ cout<<"|"; for(j=0; j < columnas; j++){ cout << "\t" << a[i][j] <<"\t"; } cout << "|" << endl; } cout << "La diagonal principal es: " << endl; for(i=0; i < filas; i++){ cout<<"|"; for(j=0; j < columnas; j++){ if(a[i]==a[j]) cout << "\t" << a[i][j]; if(i-j == 0) suma_dp += a[i][j]; } cout << "|" << endl; } cout << "La suma es: " << suma_dp; } cout << endl; system("pause"); return EXIT_SUCCESS; }
Quiero hacerlo usando la STL. Alguien me orienta? PTDA: Se trabajar con Vectores de una dimensión usando la STL
Título: Re: Ayuda en este codigo por favor
Publicado por: ivancea96 en 5 Mayo 2015, 11:43 am
¿Qué es lo que quieres hacer? ¿Convertir el float** a vector< vector<float> >?
Título: Re: Ayuda en este codigo por favor
Publicado por: MellaSystems en 6 Mayo 2015, 02:59 am
Siii ivan, tienes alguna idea?
Título: Re: Ayuda en este codigo por favor
Publicado por: crack81 en 6 Mayo 2015, 07:20 am
Te dejo mi version espero sea lo que buscas, el codigo le falta pulirlo pero espero te sirva saludos... #include<iostream> #include<vector> using namespace std; int main(){ int filas,columnas; cout<<"Ingresa el numero de filas "<<endl; cin>>filas; cout<<"Ingrese el numero de columnas"<<endl; cin>>columnas; if((filas<1 || filas>20) || (columnas<1 || columnas>20)){ cout<<"La matriz no puede ser menor que 1 ni mayor que 20"<<endl; cin.get(); cin.get(); return 0; } vector< vector<float> >lista; float valor; int suma_dp=0; for(int i=0;i<filas;i++){ lista.push_back(vector<float>());//añadimos las columnas interiores for(int j=0;j<columnas;j++){ cout << "Ingrese el elemento A[" << i + 1 << "][" << j + 1 << "]: "; cin>>valor; lista[i].push_back(valor); } } cout<<endl; cout<<"La matriz digitada es "<<endl; for(int i=0;i<filas;i++){ cout<<"|"; for(int j=0;j<columnas;j++){ cout<< "\t"<<lista[i][j]<<"\t"; } cout << "|" << endl; } cout << "La diagonal principal es: " << endl; for(int i=0; i < filas; i++){ cout<<"|"; for(int j=0; j < columnas; j++){ if(i==j) cout<< lista[i][j]; if(i-j == 0) suma_dp += lista[i][j]; lista[i].pop_back();//eliminamos los valores } cout << "|" << endl; } cout << "La suma es: " << suma_dp; cin.get(); cin.get(); return 0; }
|