Buenos días, quería preguntar porque al llenar (el usuario) esta matriz se llena la primera fila y columna de basura. Muchas gracias :-[
int main()
{
int alumnos, clases, i,j,n;
cout << "digite el numero de alumnos" << endl;
cin >> alumnos;
cout <<"digite el numero de clases" << endl;
cin >> clases;
int matriz [alumnos][clases];
for (i=1; i<=alumnos ; i++){
for (j=1; j<=clases ; j++){
matriz[i][j] = n;
cout << "por favor digite la nota de la clase" << j << endl;
cin >> n;
}
}
cout << "-------------------------------------" << endl;
for (i=1; i<=alumnos ; i++){
for (j=1; j<=clases ; j++){
cout << matriz[i][j] << " " ;
}
cout << "\n" ;
}
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
int matriz [alumnos][clases];
for (i=1; i<=alumnos ; i++){
for (j=1; j<=clases ; j++){
cout << "por favor digite la nota de la clase" << j << endl;
cin >> n;
matriz[i][j] = n; //solo eso
}
}
con eso bastaria
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.
int alumnos, clases, n;
cout << "digite el numero de alumnos" << endl;
cin >> alumnos;
cout <<"digite el numero de clases" << endl;
cin >> clases;
int matriz [2][3]={{0}};
for (int i=0; i<alumnos ; i++){
for (int j=0; j<clases ; j++){
cout << "por favor digite la nota de la clase" << j << endl;
cin >> matriz[i][j];
}
}
cout << "-------------------------------------" << endl;
for (int i=0; i<alumnos ; i++){
for (int j=0; j<clases ; j++){
cout << matriz[i][j] << " " ;
}
cout << "\n" ;