Código:
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.#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; }
- 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!!