hice este codigo para que muestre el numero 1 en la posicion que desse el usuario...pero no imprime nada
Cambios adicionales que debes hacer al programa:
* Puedes inicializar todos los elementos del array a cero con:
int matriz[100][100] = {0};
A continuación para colocar el elemento indicado por el usuario a uno basta con la asignación (en lugar del primer par de bucles anidados):
matriz[inicialf][inicialc] = 1;
* La asignación en el mentado bucle esta mal:
for (int i=1 ; i<=filas; i++){
for (int j=1 ; j<=columnas; j++){
if (i==inicialf && j==inicialc){
matriz[inicialf][inicialc]=1; /* 1 */
}
matriz[i][j]=0; /* 2 */
}
}
Ya que solo en una iteración se cumplirá la condición del bucle y por ello se asignara el valor uno pero no importa ya que a continuación se asigna el valor cero. En su lugar hay que utilizar una sentencia condicional if ... else, de esta forma:
for (int i=1 ; i<=filas; i++){
for (int j=1 ; j<=columnas; j++){
if (i==inicialf && j==inicialc){
matriz[inicialf][inicialc]=1;
}else {
matriz[i][j]=0;
}
}
}
* En el ultimo par de bucles anidados utilizas el operador ">=" cuando debería ser "<=" y en la condición del bucle interno comparas contra "filas" cuando debería ser "columnas".
* En ese mismo bucle utilizas para la salida:
cout<<"\t", matriz[i][j];
Cuando debería ser:
cout << "\t" << matriz[i][j];
* En C y C++ los indices no inician en uno, inician en cero, hay que cambiar todos los bucles. Por ejemplo el ultimo par termina así:
for (int i = 0; i != filas; ++i){
for (int j = 0; j != columnas; ++j)
cout << "\t" << matriz[i][j];
cout << std::endl; // Falta incluir <iostream>
}
Un saludo