| Ver tema anterior :: Ver siguiente tema | | Autor | Mensaje |
|---|
bitman
Registrado: 02 Abr 2014 Mensajes: 2
| Publicado: 03/04/2014 12:05 am | | | Título: Resuelto, Creando un marco guardado en array |
| EDITO: XDDDD esoty mas cegato... el problema ya lo he encontrado, en el for de imprimir puse incrementar i en vez de j.
Hola muy buenas, soy nuevo aqui en el foro y poco tiempo en c, aunque no tan poco en programación. He intentado dibujar un cuadro con marco guardando lo en una array para luego dibujarlo. Mi idea era hacer una pequeña prueba de un juego que seria mover un punto por dentro de dicho cuadro. el problema es que empieza a imprimirlo bien y hay un momento que empieza a imprimir caracteres extraños
| Código: | #include <stdio.h> #include <conio.h> #include <math.h> #include <stdlib.h> #include <windows.h> #include <string.h>
main() { // crear mapa char mapa[10][10]; int i,j; i=0; j=0; for (i=0;i<=9;i++) { j=0; for (j=0;j<=9;j++) { switch(i) { case 0: mapa[i][j]=219; //printf("%c",mapa[i][j]); break; case 9: mapa[i][j]=219; //printf("%c",mapa[i][j]); break; default : switch(j) { case 0 : mapa[i][j]=219; //printf("%c",mapa[i][j]); break; case 9 : mapa[i][j]=219; //printf("%c\n",mapa[i][j]); break; default: mapa[i][j]=256; //printf("%c",mapa[i][j]); } } } } //imprimir el mapa i=0; j=0; for (i=0;i<=9;i++) { j=0; for (j=0;j<=9;i++) { if (j<9) printf("%c",mapa[i][j]); else printf("%c\n",mapa[i][j]); getch(); } } getch(); }
|
Esto seria el codigo, primero creo el mapa asignado a cada posición un simbolo
el 219 es un cuadradito en blanco y el 256 un espacio.
parece ser que la asignación funciona perfectamente. si descomentais los prints en los switch para que vaya imprimiendo mientras asigna si que pinta bien los caracteres ( aunque no en su posición)
alguien me puede ayudar a encontrar el fallo?? |
| | Volver arriba | |  | rir3760

Registrado: 01 Oct 2004 Mensajes: 7517 Ubicación: Mexico
| Publicado: 03/04/2014 6:28 am | | | Título: |
| Es bueno que hayas solucionado el problema. Algunos comentarios sobre el programa:
* En este momento los únicos encabezados que necesitas son <stdio.h> y <conio.h>, el uso de este ultimo es problemático ya que no pertenece a la biblioteca estándar de C (su disponibilidad depende del compilador).
* La función main se debe definir como "int main(void) ..." o "int main() ..." y su valor de retorno se debe indicar con al menos "return 0;".
* No es necesario asignar el valor cero a las variables "i" y "j" antes de los bucles puesto que eso se realiza en la parte de inicializacion de ellos. Esta parte:
| Código: | i = 0; j = 0; for (i = 0; i <= 9; i++) { j = 0; for (j = 0; j <= 9; i++) { |
Hay que cambiarla a:
| Código: | for (i = 0; i <= 9; i++) { for (j = 0; j <= 9; i++) { |
Un saludo _________________ C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly. -- Kernighan & Ritchie, The C programming language |
| | Volver arriba | |  | bitman
Registrado: 02 Abr 2014 Mensajes: 2
| Publicado: 03/04/2014 11:43 pm | | | Título: |
| Gracias por la informacion de no tener que inicializar a 0 cada vez la i y la j, lo de las librerias es que hice un cpy paste del ultimo ejercicio que hice que fue una calculadora . Lo de main de poner int main() es cierto no lo suelo poner ya que el profesor que tengo no lo pone pero se que se tiene que poner, una mala costumbre que estoy cojiendo.
Gracias |
| | Volver arriba | |  | | |
| No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas
|
|
| |