Código:
Luego esto lo tengo ke almacenar en un vector o lo ke sea, para un segundo archivo me lo lea y haga unos test para saber si es bueno o no los numeros aleatorios (sumar por ejemplo todos los numeros aleatorios y elevarlo a un cierto numero y dividirlo por la cantidad de numero ke he generado). #include <stdio.h> #include <stdlib.h> int M,a,c,X,n,U; short i; char nombre_fichero[20]; FILE* pf; int main(int argc, char *argv[]) { printf(" programa, \n"); printf(" Para generar n numeros aleatorios,\n"); printf(" por elmetodo de congruencial lineales\n\n\n"); // entrada de datos printf("Introduce a\n ->\n"); scanf("%d",&a); printf("Introduce c\n ->\n"); scanf("%d",&c); printf("Introduce M\n ->\n"); scanf("%d",&M); printf("Introduce semilla\n ->\n"); scanf("%d",&X); printf("Introduce cuantos numeros quieres obtener?\n ->\n"); scanf("%d",&n); printf("En que fichero lo guardo?\n ->\n\n"); scanf("%s", &nombre_fichero); // codigo pf=fopen(nombre_fichero, "w"); for(i=0; i<n; ++i) { X=(((a * X + c) % M)); U=X/M; printf("Numero %i %d\n",i,U); fprintf(pf,"%d\n",U); } El problema lo tengo aki arriba, porke una vez ke se genera este vector luego loo tengo ke dividir por M, pero a dividir por m me da 0 :( (xke si no divido por m me salen los numeros aleatorios, supongo ke tendra ke ver algo con el tipo de declracion de las variables noo?? porke no aceptara numeros decimales ???) fclose(pf); system("PAUSE"); return 0; }
Ke aki viene mi segundo problema, xke en el primer programa te pide n numeros y claro no se cuantos van a elegir y si no pongo exactamente los mismos numeros ke he generado en la declaracion del vector en el segundo programa no funciona... aki os dejo el codigo del segundo programa
Código:
a ver si me podeis exar una manillo tios :)#include <stdio.h> #include <stdlib.h> int vector[100]; short i; char nombre_archivo[20]; FILE *pf; int n; double suma; int main(int argc, char *argv[]) { //abrir archivo printf("introduce el nombre del archivo\n"); scanf("%s",nombre_archivo); printf("Introduce cuantos numeros has generado\n"); scanf("%d",n); pf = fopen(nombre_archivo, "r"); if(pf == NULL) { printf("No se ha podido abrir el archivo.\n"); printf("Pulse una tecla para finalizar... "); exit(1); } while(fscanf(pf,"%i",vector + i++)!= EOF); if (fclose(pf)!=0){ printf( "Problemas al cerrar el fichero\n" ); } //test de uniformidad suma = 0; for(i=0; i<=n; i++) { suma += pow(vector[i],n); } printf("sumatorio es %.12lf",suma); system("PAUSE"); return 0; }
muxas gracias :)