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.
#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
primero te falta time.h, segundo
x = rand() % (%numero2 + %numero1);
para que los % antes de los numeros? :s ese es el error
x = rand() % (numero2 + numero1);
BIevenido al foro
Un duda, tratas de generar números aleatorios entre numero1 y numero2 como un intervalo?
Un saludo
Exacto esa es mi intención
Entonces:
x = numero1 + (rand() % (numero2 - numero1 + 1));
Mira si funciona así.
Un saludo
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)
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.