hola! Tengo que hacer un programa en C#, donde coloco un identificador desntro de una tabla de 8*8, y despues imprimir sus 4 diagonales, dentro de la tabla.
es decir
* *
* *
A
* *
* *
tengo hecho esto
for(i=fila+1; i<8; i++ )
{
columna++;
var[i,columna]='*';
} // diagonal derecha abajo
donde me imprime la diagonal derecha, hacia abajo,
pero ya que continuo con las otras 3 diagonales, me marca error, al ejecutar.
for ( i=fila-1; i>=0; i-- )
{
columna++;
var[i,columna]='*';
}//diagonal derecha arriba
Dice que me paso del limite del arreglo.
Algun consejo para poder resolver mi problema?
nota: antes de cada ciclo tengo que inicializar nuevamente fila y columna,
porque sino, cada variable viene incrementado antes de entrar a otro ciclo for.
Por su ayuda gracias.
Te puede ayudar en algo, conviertelo a C#.
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim strMatriz(4, 4) As Integer 'Matriz
'Seteo de datos dentro de la matriz
strMatriz(0, 0) = 1
strMatriz(0, 1) = 2
strMatriz(0, 2) = 3
strMatriz(0, 3) = 4
strMatriz(1, 0) = 5
strMatriz(1, 1) = 6
strMatriz(1, 2) = 7
strMatriz(1, 3) = 8
strMatriz(2, 0) = 9
strMatriz(2, 1) = 10
strMatriz(2, 2) = 11
strMatriz(2, 3) = 12
strMatriz(3, 0) = 13
strMatriz(3, 1) = 14
strMatriz(3, 2) = 15
strMatriz(3, 3) = 16
'Diagonal de Sup-Izq|Inf-Der
' 1 2 3 4
' 5 6 7 8
' 9 10 11 12
'13 14 15 16
'Print = 1 6 11 16
Dim dia1 As String
For i As Integer = 0 To 3
For j As Integer = 0 To 3
If i = j Then
dia1 = dia1 & strMatriz(i, j) & " "
End If
Next
Next
MsgBox(dia1)
'Diagonal de Sup-Der|Inf-Izq
' 1 2 3 4
' 5 6 7 8
' 9 10 11 12
'13 14 15 16
'Print = 4 7 10 13
Dim dia2 As String
For i As Integer = 0 To 3
For j As Integer = 0 To 3
If (i + j = 2 + 1) Then
dia2 = dia2 & strMatriz(i, j) & " "
End If
Next
Next
MsgBox(dia2)
End Sub
ya lo he solucionado, gracias
for(i=fila+1; i<8; i++ )
{
columna++;
a[i,columna]='*';
}
for(i=columna-1; i>=0; i-- )
{
fila++;
a[fila,i]='*';
}
for ( i=fila-1; i>=0; i-- )
{
columna++;
a[i,columna]='*';
}
for (i=fila-1; i>=0; i--)
{
columna--;
if ( columna>=0)
{
a[i,columna]='*';
}
else
break;
}