Acierta el numero PROBLEMA

Iniciado por x I HACK YOU x, 29 Mayo 2015, 20:33 PM

0 Miembros y 1 Visitante están viendo este tema.

x I HACK YOU x

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 (cpp) [Seleccionar]
#include<stdio.h>
#include<stdlib.h>
int main (){
int x, y , numero1, numero2 ;

printf("Entre cuantos numeros quieres hacer el sorteo? (1 - 10) \n");
printf("Introduce el primer numero. \n");
scanf("%i", &numero1);
printf("Introduce el segundo numero. \n");
scanf("%i", &numero2);

srand(time(0));
x = rand() % (%numero2 + %numero1);

printf ("Cual es el valor de x ?. \n");
scanf ("%i.", &y);

if(y == x){
printf("Felicidades !! Has acertado.\n\n");

}
else {
printf("Lo siento, te has equivocado. \n\n");
printf("El valor de x era: %i.\n", x);
printf("Otra vez sera... \n");
}

system ("pause");
return 0;

   
Gracias
x I HACK YOU x


Mod: Los códigos deben ir en etiquetas GeSHi

engel lex

primero te falta time.h, segundo

Código (cpp) [Seleccionar]
x = rand() % (%numero2 + %numero1);

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

Código (cpp) [Seleccionar]
x = rand() % (numero2 + numero1);
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

0xFer

#2
BIevenido al foro

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

Un saludo
Código (java) [Seleccionar]
int getRandomNumber(){
    return 4; //chosen by fair dice roll
              //guaranteed to be random
}

x I HACK YOU x


0xFer

#4
Entonces:

Código (cpp) [Seleccionar]

x = numero1 + (rand() % (numero2 - numero1 + 1));  


Mira si funciona así.

Un saludo
Código (java) [Seleccionar]
int getRandomNumber(){
    return 4; //chosen by fair dice roll
              //guaranteed to be random
}

x I HACK YOU x

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)

0xFer

#6
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.
Código (java) [Seleccionar]
int getRandomNumber(){
    return 4; //chosen by fair dice roll
              //guaranteed to be random
}