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
¿Qué es lo que quieres hacer? ¿Convertir el float** a vector< vector<float> >?
Siii ivan, tienes alguna idea?
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;
}