Ayuda en este codigo por favor

Iniciado por MellaSystems, 4 Mayo 2015, 23:29 PM

0 Miembros y 1 Visitante están viendo este tema.

MellaSystems

Tengo este codigo en C++:

Código (cpp) [Seleccionar]
#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

ivancea96

¿Qué es lo que quieres hacer? ¿Convertir el float** a vector< vector<float> >?

MellaSystems


crack81

Te dejo mi version espero sea lo que buscas, el codigo le falta pulirlo pero espero te sirva saludos...

Código (cpp) [Seleccionar]
#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;
}
Si C/C++ es el padre de los lenguajes entonces ASM es dios.