elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Tridiagonal...
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Tridiagonal...  (Leído 3,182 veces)
soser

Desconectado Desconectado

Mensajes: 44


...


Ver Perfil
Tridiagonal...
« en: 9 Septiembre 2010, 04:27 am »

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
Código:
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:
Código:
//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... 


« Última modificación: 12 Septiembre 2010, 01:49 am por Littlehorse » En línea

do-while


Desconectado Desconectado

Mensajes: 1.276


¿Habra que sacarla de paseo?


Ver Perfil
Re: Tridiagonal...
« Respuesta #1 en: 14 Septiembre 2010, 04:16 am »

¡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!


En línea

- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines