Necesito ayuda superurgente.
Código:
#include <stdio.h>
#include <stdlib.h>
int a,c,X,M,n,U;
short i;
char nombre_fichero[20];
FILE* pf;
int main(int argc, char *argv[])
{
printf(" Para generar n numeros aleatorios,\n");
printf(" por elmetodo de congruencial lineales\n\n\n");
// entrada de datos
printf("Introduce a\n");
printf("-> ");
scanf("%d",&a);
printf("Introduce c\n");
printf("-> ");
scanf("%d",&c);
printf("Introduce M\n");
printf("-> ");
scanf("%d",&M);
printf("Introduce semilla\n");
printf("-> ");
scanf("%d",&X);
do{
printf("Introduce cuantos numeros quieres obtener?\n");
printf("-> ");
scanf("%d",&n);
}while(n>1000);
printf("En que fichero lo guardo?\n");
printf("-> ");
scanf("%s", &nombre_fichero);
// codigo
if((pf = fopen(nombre_fichero, "w+"))==NULL)
{
printf("Error en apertura de archivo");
}
for(i=1; i<n; ++i)
{
X=(a * X + c)%M;
U=X/M;
printf("Numero %i %d\n",i,U);
fprintf(pf,"%f\n",U);
}
fclose(pf);
system("PAUSE");
return 0;
}
Mi problema viene ke cuando hace la division U=X/M, ke me da 0 para todo n (xke la funcion X=(a * X + c)%M; si ke me da los numeros correctos) y si cambio el tipo de variable por un float ( en vez de int ) me surge el siguiente problema.
- In function `main':
- invalid operands to binary %
xke yo kiero conseguir numeros aleatorios por el metodo congruencial, ke es:
Xi+1=(a * Xi + c)%M;
U= X/M; (donde U son los numeros aleatorios).
porfavor necesito ayuda urgente!, es ke tengo ke entregar la practica dentro de 5h.... y llevo varios dias intentando areglar esto y estoy desesperado!
muxas gracias tios!!