elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Pin y contraseña
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Pin y contraseña  (Leído 1,278 veces)
galatea

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Pin y contraseña
« en: 24 Junio 2020, 19:46 pm »

Hola, me piden que genere un pin de 4 digitos sin digitos consecutivos iguales. Tengo este avance para generar un pin...pero A. me salen letras, no se por que; B. No se cómo hacer lo que no tenga dígitos consecutivos iguales. Soy nuevisima en esto...¿me podrán ayudar? (Estoy trabajando con CodeBlocks, no se si eso influye)
Muchas Gracias

Código
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<time.h>
  4.  
  5. char cadena[10]={'0','1','2','3','4','5','6','7','8','9'};
  6.  
  7. int main()
  8. {
  9.    srand(time(NULL)); //Para que los numeros sean realmente aleatorios
  10.    int i; //contador
  11.    char digito[4];
  12.    printf("Los 4 caracteres generados aleatoriamente son: ");
  13.    for(i=0;i<=4;i++)
  14.    {
  15.        digito[i]=cadena[rand() % 50]; //numero aleatorio entre 0 y 35
  16.        printf("%c",digito[i]);
  17.    }
  18.    printf("\n");
  19.    system("pause");
  20.    return 0;
  21. }

MOD: Etiquetas de Código GeSHi para los códigos


« Última modificación: 26 Junio 2020, 02:41 am por YreX-DwX » En línea

Kenji-chan

Desconectado Desconectado

Mensajes: 104


Ver Perfil
Re: Pin y contraseña
« Respuesta #1 en: 24 Junio 2020, 20:52 pm »

Verás al declarar tu variable
Código
  1. char cadena[10]={'0','1','2','3','4','5','6','7','8','9'};
la defines con una longitud de 10 a la vez que la rellenas y cuando haces
Código
  1. digito=cadena[rand() % 50]; //numero aleatorio entre 0 y 35
le estás diciendo a digito[0] que es igual a cadena[35] (35 digamos que es el número aleatorio que nos generó en esa iteración)  pero anterior mente definimos a cadena con una longitud de 10 a si que cadena[35] está accediendo a un espacio de memoria no definida y dígito  no está cambiando su posición en ningún momento (deberías de poner digito)


En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 923



Ver Perfil
Re: Pin y contraseña
« Respuesta #2 en: 26 Junio 2020, 02:48 am »

Como ya te han dicho, estás accediendo a posiciones de memoria desconocidas. Además el número aleatorio que generas no está entre 0 y 35 sino entre 0 y 49. Tendrías que hacer que el número aleatorio esté entre 0 y 9 mediante: (rand() % 10).

Otro problema a tener en cuenta es que no generas 4 dígitos mediante el bucle for() sino 5. Desde i = 0 hasta i <= 4 son: {0,1,2,3,4} 5 repeticiones.

Y un consejo extra: no utilices system("pause") para hacer una pausa en el programa. Utiliza getchar() que pertenece a la biblioteca <stdio.h>.
En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
EmaTomA

Desconectado Desconectado

Mensajes: 4



Ver Perfil
Re: Pin y contraseña
« Respuesta #3 en: 9 Julio 2020, 13:26 pm »


1 -> char esta declarado fuera de main.
2 -> tienes la cadena con las memorias declaradas, te recomiendo inicializarlas en 0.
3 -> Es normal que te salgan letras, si pides que te imprima un caracter ascii con %c
4 -> La funcion dentro de for no tiene logica.
5 -> para capar un numero aleatorio y caparlo a un maximo usa:

           

En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Contraseña a PDF
Programación Visual Basic
jrhomer 3 673 Último mensaje 17 Junio 2006, 13:24 pm
por jrhomer
no puedo conectarme a una red con contraseña sabiendo la contraseña
Redes
phoeboo 2 4,305 Último mensaje 24 Junio 2010, 06:47 am
por zhyzura
contraseña del msn
Mensajería
xemnas 2 3,267 Último mensaje 24 Junio 2011, 12:03 pm
por тαптяα
Contraseña.
Dudas Generales
CSDguez25 3 1,659 Último mensaje 28 Marzo 2012, 15:09 pm
por CloudswX
Contraseña RAR
Dudas Generales
WalterWhite 2 1,303 Último mensaje 12 Febrero 2013, 23:26 pm
por #Borracho.-
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines