Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: x I HACK YOU x en 29 Mayo 2015, 20:33 pm



Título: Acierta el numero PROBLEMA
Publicado por: x I HACK YOU x en 29 Mayo 2015, 20:33 pm
Hola me gustaría que alguien me corrigiera el error que tengo en este pequeño programa, acabo de empezar y voy un poco perdido.
El error se encuentra en la linea rand(), o eso es lo que marca mi entorno de trabajo.
Código
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. int main (){
  4. int x, y , numero1, numero2 ;
  5.  
  6. printf("Entre cuantos numeros quieres hacer el sorteo? (1 - 10) \n");
  7. printf("Introduce el primer numero. \n");
  8. scanf("%i", &numero1);
  9. printf("Introduce el segundo numero. \n");
  10. scanf("%i", &numero2);
  11.  
  12. srand(time(0));
  13. x = rand() % (%numero2 + %numero1);
  14.  
  15. printf ("Cual es el valor de x ?. \n");
  16. scanf ("%i.", &y);
  17.  
  18. if(y == x){
  19. printf("Felicidades !! Has acertado.\n\n");
  20.  
  21. }
  22. else {
  23. printf("Lo siento, te has equivocado. \n\n");
  24. printf("El valor de x era: %i.\n", x);
  25. printf("Otra vez sera... \n");
  26. }
  27.  
  28. system ("pause");
  29. return 0;
   
Gracias
x I HACK YOU x


Mod: Los códigos deben ir en etiquetas GeSHi


Título: Re: Acierta el numero PROBLEMA
Publicado por: engel lex en 29 Mayo 2015, 21:08 pm
primero te falta time.h, segundo

Código
  1. x = rand() % (%numero2 + %numero1);

para que los % antes  de los numeros? :s ese es el error

Código
  1. x = rand() % (numero2 + numero1);


Título: Re: Acierta el numero PROBLEMA
Publicado por: 0xFer en 30 Mayo 2015, 00:37 am
BIevenido al foro

Un duda, tratas de generar números aleatorios entre numero1 y numero2 como un intervalo?

Un saludo


Título: Re: Acierta el numero PROBLEMA
Publicado por: x I HACK YOU x en 30 Mayo 2015, 08:33 am
Exacto esa es mi intención


Título: Re: Acierta el numero PROBLEMA
Publicado por: 0xFer en 30 Mayo 2015, 19:41 pm
Entonces:

Código
  1. x = numero1 + (rand() % (numero2 - numero1 + 1));  

Mira si funciona así.

Un saludo


Título: Re: Acierta el numero PROBLEMA
Publicado por: x I HACK YOU x en 31 Mayo 2015, 10:14 am
Muchas gracias, ahora si que funciona.
Lop que no entiendo es porque no se ponen las variables numero1 i numero2 en el formato "normal". (%i, numero1)


Título: Re: Acierta el numero PROBLEMA
Publicado por: 0xFer en 1 Junio 2015, 00:17 am
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.


 
Código
  1. printf("%i", xxx ); // imprime un entero
  2.  
  3. printf("%c", xxx );//imprime un char
  4.  
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.