/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

Resuelto, Creando un marco guardado en array

 
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
bitman



Registrado: 02 Abr 2014
Mensajes: 2

MensajePublicado: 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: 7516
Ubicación: Mexico

MensajePublicado: 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

MensajePublicado: 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
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com