Dudas de matrices en C.

Iniciado por Necroshade17, 4 Junio 2014, 23:32 PM

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

Necroshade17

Buenas, tengo las siguientes preguntas:

1. ¿Cómo podría ir ingresando valores en C y estos se vean en pantalla en forma de celdas?

Por ejemplo se introducen los numeros 1,2,3,4,5,6,7,8,9 por teclado en una matriz 3x3 (OJO, preferiblemente que se explique con una matriz que pueda ser nxn):
      1  2  3
      4  5  6
      7  8  9

2. Si se quisiera imprimir una matriz como arriba (ya cargada o pre establecida),¿como sería?

3. Si yo quisiera mover el cursor libremente en la matriz para modificar valores, ¿cómo lo haría?

Aquí tengo el programa que he hecho hasta ahora. Por alguna razón lo imprime de una forma extraña.

#include <stdio.h>
#include <conio.h>

void main()
{
   int mat[30][30];
   int f, c, num, n=0;
   clrscr();
   printf ("Introduzca la dimensión de la matriz: ");
   scanf ("%d", &num1);
   printf ("\nIntroduzca los valores de la matriz: \n\n");
   for (f=0; f<num1; f++)
    {
      for (c=0; c<num1; c++)
       {
         scanf("%d", mat[f][c]);
         printf("\t"); /*O simplemente espacios*/
        }
      printf("\n");
     }
   getch();
  }

Luego de eso procedo a imprimir la diagonal de la posición 0,0 a la posición num1-1,num1-1. Pienso yo que al resolver la primera duda podría arreglármelas para imprimir la matriz como yo desee.
 
Debo mencionar que no se deben usar funciones.

¡Se les agradece su ayuda!

engel lex

sale raro porque intentas que la escritura del numero salga ordenada, pero al presionar enter para introducir el dato, saltas de linea... separa la lectura y la escritura, un ciclo para cada cosa...

tienes un error que no se como no te hizo fallar el programa
scanf("%d", mat[f][c]);

tienes que pasar la variable ahí como referencia así
scanf("%d", &mat[f][c]);


y por ultimo... procura no usar la librería conio... no es standard y no es justamente recomendada
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Necroshade17

Tal vez se me pasó poner el & pasando el programa acá  :P muchas gracias por señalarlo. Al final utilicé la función gotoxy para hacerlo. ¡Muchísimas gracias por la ayuda! Y si es posible, que alguien me ayude a querer mover libremente el cursor en la pantalla de impresión  ;-)