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 - xiruko

#161
Longitud 4, números entre [0,5] y sin repetir? Te refieres a números tipo: 1234 5432 etc? Es que no queda muy claro tal y como lo dices pero diría que es eso.

Si es así, podrías hacer un array de enteros con todas las posibilidades tipo:

int combinaciones[]={1234, 2341, 3412, 2341, 1235, 2351, 3512, 5123, ...};
int tam=sizeof(combinaciones)/sizeof(combinaciones[0]);


Y luego para generar un número u otro podrías hacer:

int generar(int *p, int tam)
{
   return p[rand()%tam];
}


Claro que también podrías rellenar el array con un par de ciclos for para ahorrárte el escribirlos a mano. O también podrías declarar el array de enteros dentro de la función y así te ahorras esos parámetros... En fin, era solo una idea.

Saludos.
#162
Cita de: leosansan en 21 Enero 2014, 02:53 AM
Ahora sólo falta que diga que se rechaza por menor o mayor número de cifras. ;)

Aquí lo dejo ;D

#include <stdio.h>
#include <string.h>
#define MAX 5

int main()
{
    char buffer[MAX]={'\0'};
    int ch;
    char *p=NULL;
    int basura=0;

    printf("Introduce %d caracteres: ", MAX-1);
    fgets(buffer, MAX, stdin);

    if (p=strchr(buffer, '\n'))
printf("ERROR: Faltan %ld caracteres.\n", MAX-1-(p-buffer));
    else
    {
basura=1;
while ((ch=getchar())!='\n' && ch!=EOF) basura++;
if (basura > 1)
    printf("ERROR: Sobran %d caracteres.\n", basura-1);
else
    printf("BIEN! Introdujiste solo %d caracteres.\n", MAX-1);
    }

    return 0;
}


Saludos.
#163
Hola, bueno no me leí todo el hilo pero diría que se trata de problemas con el salto de línea y fgets(). Dejo aquí mi pequeño granito de arena:

#include <stdio.h>
#include <string.h>
#define MAX 5

int main()
{
    char buffer[MAX]={'\0'};
    int ch;
    char *p=NULL;

    fgets(buffer, MAX, stdin);
    if (p=strchr(buffer, '\n')) // si se encuentra el '\n' se cambia por null
        *p='\0';
    else                        // si no se encuentra es que hay que vaciar el buffer de entrada
while ((ch=getchar())!='\n' && ch!=EOF);

    printf("Introdujiste: %s\n", buffer);

    return 0;
}


Si no tiene nada que ver con el hilo pido disculpas, pero es que con tanto post la verdad que da un poco de pereza encontrar el problema.

Saludos.
#164
Me he registrado hace un rato y la verdad es que engancha ;-)

Gracias por compartir!
#165
De nada.

Respecto a lo del código en colores, cuando editas un mensaje tienes una pestaña con el nombre de GeSHi que despliega todas las etiquetas para varios lenguajes de programación. En el caso de C++ tendrías que pegar el código entre las etiquetas [ code=cpp] ... [ /code], sin espacios claro.

Saludos.
#166
CitarParse error: syntax error, unexpected T_VARIABLE in /home/u527083781/public_html/games/puntos.php on line 16

Ahora vamos a tu línea 16 para buscar un posible error de sintaxis:

$puntos_user = $puntos_user $val $puntos;

Qué ves ahí que pueda estar mal?

Saludos.
#167
CitarSe acabó, no aguanto más. Llevo 35 minutos...

Si quieres seguir en esto me parece que tendrás que aprender a tener un poco más de paciencia... xD

Y bueno en cuanto al código, no sé de que te sorprendes si nunca cambias el valor de la variable 'codigo'. O imprimes dentro de la función la variable local 'num', o pasas la variable 'codigo' por referencia a la función para así poder modificar su valor. Esta última opción te quedaría así:

Código (cpp) [Seleccionar]
#include <iostream>
#include <string>
#include <ctime>
#include <cstdlib>
using namespace std;

void generar(int *c);

int main()
{
    int codigo;
    srand(time(NULL));

    generar(&codigo);
    cout << "numero aleatorio: " << codigo;
   
    return 0;
}

void generar(int *c)
{
    *c = rand() % 51;
}


Aunque hacer una función para eso pues como que tampoco haría falta... Pero bueno eso ya es cosa tuya.

Saludos.
#168
Hardware / Re: Estafa con la ram?
14 Enero 2014, 11:37 AM
Mira la frecuencia máxima a la que puede ir la RAM en tu placa base. Estoy casi seguro que ahí verás que puede ir a un máximo de 1600MHz.

Saludos.
#170
A ver, primer error es que te falta un ';' al final de la declaración del struct:

struct persona
{
   char nombre[20];
   char apellidoP[20];
   char apellidoM[20];
   char rut[10];
   int edad;        
};


Segundo, en C, una vez pasada la declaración de las variables, no se pueden asignar las cadenas de esta manera:

persona1.nombre = "Rodrigo";
persona1.apellidoP = "Saavedra";


En lugar de eso, deberías hacerte alguna función para copiar carácter a carácter o usar, por ejemplo, la función strncpy() de la librería 'string.h'. Quedaría algo así:

#include <string.h>

char nombre1[] = "Rodrigo";  // aqui si que se puede porque es en el momento de la declaracion
strncpy(persona1.nombre, nombre1, strlen(nombre1));  // en tiempo de ejecucion hay que hacerlo asi


También puedes inicializar las variables del tipo de tu estructura al momento de declararlas:

struct persona persona1 = {"Rodrigo", "Saavedra", "Pizarro", "ASDF-1", 23};

edito: mirando el código, sería una buena práctica que pasaras un puntero de tu estructura a la función 'desplegarValores' en lugar de la estructura en sí, ya que así evitarías que se hiciera una copia local de ella. Si además no quieres que en la función se modifique el valor de tu estructura, podrías pasarla con el parámetro 'const'. Te quedaría algo así:

void desplegarValores(const struct persona *p)
{
   printf("Nombre: %s\n",p->nombre);
   printf("Apellido paterno: %s\n",p->apellidoP);
   printf("Apellido materno: %s\n",p->apellidoM);
   printf("Rut: %s\n",p->rut);
   printf("Edad: %i\n\n",p->edad);    
}


Y en la función 'main' deberías llamarla así:

desplegarValores(&persona1);

Un saludo.