Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Estebanmc2912 en 7 Noviembre 2015, 09:26 am



Título: Matriz Basura
Publicado por: Estebanmc2912 en 7 Noviembre 2015, 09:26 am
Buenos días, quería preguntar porque al llenar (el usuario) esta matriz se llena la primera fila y columna de basura. Muchas gracias  :-[

Código
  1.  
  2. int main()
  3. {
  4.  
  5.    int alumnos, clases, i,j,n;
  6.  
  7.    cout << "digite el numero de alumnos" << endl;
  8.    cin >> alumnos;
  9.    cout <<"digite el numero de clases" << endl;
  10.    cin >> clases;
  11.  
  12.    int matriz [alumnos][clases];
  13.  
  14.    for (i=1; i<=alumnos ; i++){
  15.      for (j=1;  j<=clases ; j++){
  16.  
  17.         matriz[i][j] = n;
  18.         cout << "por favor digite la nota de la clase" << j << endl;
  19.         cin >> n;
  20.      }
  21.    }
  22.  
  23.   cout << "-------------------------------------" << endl;
  24.  
  25.    for (i=1; i<=alumnos ; i++){
  26.      for (j=1;  j<=clases ; j++){
  27.  
  28.         cout << matriz[i][j] << " " ;
  29.  
  30.      }
  31.    cout << "\n" ;
  32.    }
  33.  
  34.  



Título: Re: Matriz Basura
Publicado por: aivdev en 7 Noviembre 2015, 11:33 am
Porque eso es lo q estás haciendo en el código.
Pista:
Una matriz es un vector de vectores.
La posición de la "primera casilla de un vector" es la posición 0.

Si tienes un vector v, de tamaño 5,  con los valores:
A,B,C,D,E

v[0]=A
V[1]=B

Con eso, mira tu código otra vez.


Enviado desde mi iPhone utilizando Tapatalk


Título: Re: Matriz Basura
Publicado por: flony en 7 Noviembre 2015, 23:27 pm
Código
  1.   int matriz [alumnos][clases];
  2.  
  3.    for (i=1; i<=alumnos ; i++){
  4.      for (j=1;  j<=clases ; j++){
  5.  
  6.         cout << "por favor digite la nota de la clase" << j << endl;
  7.         cin >> n;
  8.         matriz[i][j] = n;  //solo eso
  9.      }
  10.    }

con eso bastaria


Título: Re: Matriz Basura
Publicado por: Estebanmc2912 en 8 Noviembre 2015, 11:42 am
Muchas gracias a todos los que comentaron, pues la verdad lo pude solucionar borrando la variable la cual iguale anteriormente a la matriz e inicializando el for en 0.

Código
  1.  
  2. int alumnos, clases, n;
  3.  
  4.    cout << "digite el numero de alumnos" << endl;
  5.    cin >> alumnos;
  6.    cout <<"digite el numero de clases" << endl;
  7.    cin >> clases;
  8.  
  9.    int matriz [2][3]={{0}};
  10.  
  11.    for (int i=0; i<alumnos ; i++){
  12.      for (int j=0;  j<clases ; j++){
  13.  
  14.         cout << "por favor digite la nota de la clase" << j << endl;
  15.         cin >> matriz[i][j];
  16.      }
  17.    }
  18.  
  19.   cout << "-------------------------------------" << endl;
  20.  
  21.    for (int i=0; i<alumnos ; i++){
  22.      for (int j=0;  j<clases ; j++){
  23.  
  24.         cout << matriz[i][j] << " " ;
  25.  
  26.      }
  27.    cout << "\n" ;
  28.  
  29.