Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - 0xFer

#351
En tu código si la usas

for (X=0;X<3;X++)

Tienes que tener en cuenta de que estas usando una variable en ese bucle for, pero el 'X' es un caracter o sea es un valor que puede tomar una variable

No te confundas con la variable X y el caracter 'X' son diferentes, el primero es una variable y el segundo un valor que puede tomar una variable
#352
No te aparece ninguna X porque no has declarado la variable X y porque cuando tratas de generar las "X" aleatoriamente te olvidas de volver a imprimir tu arreglo, además la forma en la que generabas las "X"s no es la correcta

Espero que esto te sirva:


#include <stdio.h>

int main(){
 
  int tam = 6;
  char tablero[tam][tam];

  int i,j,X; //declaramos la variable X
 
  //Iniciando los valores del tablero a '.', esto tu lo puedes cambiar
  for(i = 0; i < tam;i++)
      for(j = 0; j < tam;j++)
          tablero[i][j] = '.';
         
  //generando las 3 X aleatoriamente        
  srand (time(NULL));    
  int Xnum = 0; //un contador        
  while(Xnum < 3){ //hasta que se generen las 3 Xs
 
      i = rand() % tam;   //el numero aleatorio depende del tamaño del tablero
      j = rand() % tam;
     
      if( tablero[i][j] != 'X'){ //probamos si en esa posicion no existe alguna X
          tablero[i][j] = 'X';   //agregamos una X
          Xnum++; //aumentamos contador para no dibujar mas de 3 Xs
      }    
 
  }
 
  //imprimimos todo
  printf("\n   ");
  for (j=0;j<tam;j++)
      printf("%c ", 'a' + j);
  printf("\n");

  for (i=0;i<tam;i++){

      printf("%d  |", i);
     
      for (j=0;j<tam;j++){
         printf(" %c", tablero[i][j]);
      }
     
      printf(" \n");
  }
return 0;  
  }
#353
con (%i, numero1) creo que te refieres a cuando uno quiere imprimir una variable, en realidad el % en ese caso es para especificar que tipo de variable es la que vas a imprimir.



printf("%i", xxx ); // imprime un entero

printf("%c", xxx );//imprime un char

http://www.9wy.net/onlinebook/CPrimerPlus5/ch04lev1sec4.html

Esto es así en varios lenguajes.

También sirve como operador de modulo,que devuelve el resto de la división entera del primer operando entre el segundo.
#354
El código que publiqué arriba resuelve el problema.

Un saludo
#355
SI era el Power Deep en la BIOS

Gracias  ;D
#356
Cita de: dragonlady en 31 Mayo 2015, 02:05 AM
Si, tendría que ser %c
Así es.

No dudes en preguntar si tienes más dudas, suerte.
#357
Parecido a cuando quieres imprimir:



for(i = 0; i < tam; i++){
    for(j = 0; j < tam; j++)
        matriz[i][j] = 0;
    }
}           



No se si te sirva mucho un tablero que imprima solo números, asi que puedes cambiar ese int por un char y podras imprimir letras u otro tipo de caracteres
#358
SI es Orientado a Objetos. otra cosa es que lo que programen en C++ hagan lo mismo que en C y no utilicen las caracteristicas de C++ y digan que estan programando en C++  :laugh:

Digamos que es Multiparadigma  :laugh:
#359
Son locuras de Microsoft, se llama así solo porque usas el Visual Studio para programar en C++  :laugh:
#360
En realidad en tu código no estas iniciando los valores, solo los tratas de imprimir


   int tam = 1;
   printf("ingrese tamanio: ");
   scanf(" %d", &tam);

  int i=0,j=0;

  int matriz[tam][tam];
 
  memset(matriz,0,sizeof(matriz)); //inicia todos los valores a 0
 

  for(i = 0; i < tam; i++){ //imprime todos los valores
      for(j = 0; j < tam; j++)
          printf("%i",matriz[i][j]);
       printf("\n");
 
}



+ para memset
#include <string.h>