elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda en este codigo por favor
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda en este codigo por favor  (Leído 1,426 veces)
MellaSystems

Desconectado Desconectado

Mensajes: 46



Ver Perfil
Ayuda en este codigo por favor
« en: 4 Mayo 2015, 23:29 »

Tengo este codigo en C++:

Código
  1. #include <iostream>
  2. #include <stdlib.h>
  3.  
  4. using namespace std;
  5.  
  6. main(){
  7.  
  8. int i, j, filas, columnas, suma_dp=0;
  9. cout << "Ingrese el n\243mero de filas de la matriz: ";
  10. cin >> filas;
  11. cout << "Ingrese el n\243mero de columnas de la matriz: ";
  12. cin >> columnas;
  13.  
  14. if((filas < 1 || columnas < 1) || (filas > 20 || columnas > 20)){
  15. cout << "La matriz no puede ser menor que 1 ni mayor que 20\n\n";
  16. }
  17. else{
  18. cin.get();
  19. float **a = new float*[filas];
  20. cout << endl;
  21. for(i=0; i < filas; i++){
  22. a[i] = new float[columnas];
  23. for(j=0; j < columnas; j++){
  24. cout << "Ingrese el elemento A[" << i + 1 << "][" << j + 1 << "]: ";
  25. cin >> a[i][j];
  26. }
  27. }
  28. cout << endl;
  29. cout << "La matriz digitada es: " << endl;
  30. for(i=0; i < filas; i++){
  31. cout<<"|";
  32. for(j=0; j < columnas; j++){
  33. cout << "\t" << a[i][j] <<"\t";
  34. }
  35. cout << "|" << endl;
  36. }
  37.  
  38. cout << "La diagonal principal es: " << endl;
  39. for(i=0; i < filas; i++){
  40. cout<<"|";
  41. for(j=0; j < columnas; j++){
  42. if(a[i]==a[j])
  43. cout << "\t" << a[i][j];
  44. if(i-j == 0)
  45. suma_dp += a[i][j];
  46. }
  47. cout << "|" << endl;
  48. }
  49. cout << "La suma es: " << suma_dp;
  50.  
  51. }
  52. cout << endl;
  53. system("pause");
  54. return EXIT_SUCCESS;
  55.  
  56. }

Quiero hacerlo usando la STL.

Alguien me orienta?

PTDA: Se trabajar con Vectores de una dimensión usando la STL


En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.410


ASMático


Ver Perfil WWW
Re: Ayuda en este codigo por favor
« Respuesta #1 en: 5 Mayo 2015, 11:43 »

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


En línea

MellaSystems

Desconectado Desconectado

Mensajes: 46



Ver Perfil
Re: Ayuda en este codigo por favor
« Respuesta #2 en: 6 Mayo 2015, 02:59 »

Siii ivan, tienes alguna idea?
En línea

crack81

Desconectado Desconectado

Mensajes: 222



Ver Perfil
Re: Ayuda en este codigo por favor
« Respuesta #3 en: 6 Mayo 2015, 07:20 »

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

Código
  1. #include<iostream>
  2. #include<vector>
  3. using namespace std;
  4.  
  5.  
  6. int main(){
  7.  
  8.    int filas,columnas;
  9.  
  10.    cout<<"Ingresa el numero de  filas "<<endl;
  11.    cin>>filas;
  12.    cout<<"Ingrese el numero de columnas"<<endl;
  13.    cin>>columnas;
  14.  
  15.    if((filas<1 || filas>20) || (columnas<1 || columnas>20)){
  16.        cout<<"La matriz no puede ser menor que 1 ni mayor que 20"<<endl;
  17.        cin.get();
  18.        cin.get();
  19.        return 0;
  20.    }
  21.  
  22.    vector< vector<float> >lista;
  23.    float valor;
  24.    int suma_dp=0;
  25.  
  26.    for(int i=0;i<filas;i++){
  27.  
  28.        lista.push_back(vector<float>());//añadimos las columnas interiores
  29.        for(int j=0;j<columnas;j++){
  30.  
  31.            cout << "Ingrese el elemento A[" << i + 1 << "][" << j + 1 << "]: ";
  32.            cin>>valor;
  33.            lista[i].push_back(valor);
  34.        }
  35.    }
  36.    cout<<endl;
  37.    cout<<"La matriz digitada es "<<endl;
  38.  
  39.    for(int i=0;i<filas;i++){
  40.        cout<<"|";
  41.        for(int j=0;j<columnas;j++){
  42.  
  43.            cout<< "\t"<<lista[i][j]<<"\t";
  44.        }
  45.        cout << "|" << endl;
  46.    }
  47.  
  48.    cout << "La diagonal principal es: " << endl;
  49.    for(int i=0; i < filas; i++){
  50.        cout<<"|";
  51.        for(int j=0; j < columnas; j++){
  52.            if(i==j)
  53.            cout<< lista[i][j];
  54.            if(i-j == 0)
  55.            suma_dp += lista[i][j];
  56.            lista[i].pop_back();//eliminamos los valores
  57.        }
  58.        cout << "|" << endl;
  59.    }
  60.    cout << "La suma es: " << suma_dp;
  61.  
  62.  
  63.  
  64.  
  65. cin.get();
  66. cin.get();
  67. return 0;
  68. }
  69.  
En línea

Si C/C++ es el padre de los lenguajes entonces ASM es dios.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines