Tridiagonal...

Iniciado por soser, 9 Septiembre 2010, 04:27 AM

0 Miembros y 1 Visitante están viendo este tema.

soser

Bien pues en si el problema que tengo es leer un arreglo de tamaño 10 y ese arreglo imprimirlo de forma de matriz tridiagonal, tengo este codigo pero me salen cosas extrañas

int mat[10];
int cont=0;
for(i=0;i<4;i++)
         {
for(j=0;j<4;j++)
{
if((i==j) || j==(i-1) || j==(i+1))
                        printf("%d",mat[cont]);
cont++;
}
printf("\n");
}

en si la salida seria por ejemplo asi:
1 2
3 4 5
 6 7 8
    9 0

Eso es una parte, y otro duda que tengo es que igual debo de decir que si por ejemplo me da las coordenadas de la matriz i=1, j=0, me calcule segun las coordenadas que me da el usuario la posicion en el arreglo, asi con esas coordenadas i=1,j=0 me deberia de dar que ocupa la posicion 2 en el arreglo, para esto llevo este codigo:

//suponiendo que se llama desde main posi(i,j,mat)
void posi(int i,int j,int mat[])
{
   i++;//
   j++;
   int po;
   if((i==j) || j==(i-1) || j==(i+1))
   {
    po=1+2*i+(j-3);
    printf("La posicion en el arreglo de los puntos dados es: %d\n",po-1);
       printf("El elemento en esa posicion es:%d\n",mat[po-1]      
   }
   else
   {printf("*\n");}
}

en este caso debo de decir que la funcion tiene efecto solo en  una parte de la matriz, ya que a partir de ciertas coordenas que se toman, empieza a sacr cosas que no...
bueno en si quisiera que me orientaran o me dijeran si mis condiciones estan bien o no.
Uso DEv-C++ para programar...gracias


Lh: No hagas doble post, utiliza el botón modificar.


bueno...pude resolver lo de las posiciones del arreglo y la impresion...para los que se tomaron la molestia aunque sea de leer mi duda gracias...y pues ahora el unico problema que tengo es que a la hora de imprimir me sale asi:
12
345
678
90
en si, ahora solo quiero que imprima asi:
12
345
678
   90
eso seria todo lo que me falta, gracias... 

do-while

¡Buenas!

Si las fila y la columna corresponden a una posicion dentro de las tres diagonales imprimes un valor, pero si las coordenadas dentro de la matriz estan fuera de ellas, no estas imprimiendo nada...

¡Saludos!
- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!