Curso de Programación en C/Prog107
Ir a la navegación
Ir a la búsqueda
Prog107
1 //Archivo Prog107a.c
2 static unsigned long int Siguiente = 1; /* La semilla */
3
4 int rand1( void )
5 {
6 Siguiente = Siguiente * 1103515245 + 12345;
7
8 return (unsigned int) (Siguiente/65536) % 32768;
9 }
10
11 void srand1(unsigned int Semilla)
12 {
13 Siguiente = Semilla;
14 }
15
16 // Archivo Prog107b.c
17 #include <stdio.h>
18
19 extern void srand1( unsigned int x );
20 extern int rand1( void );
21
22 int main( void )
23 {
24 int Contar;
25 unsigned Semilla;
26
27 printf( "Ingressa una semilla (entero positivo): " );
28
29 while( scanf( "%u", &Semilla ) == 1 )
30 {
31 srand1( Semilla );
32
33 for( Contar = 0; Contar < 5; Contar++ )
34 printf( "%hd\n", rand1() );
35
36 printf("Ingressa una semilla (entero positivo o q a terminar): ");
37 }
38
39 printf( "Listo\n" );
40
41 return 0;
42 }
Resultado
[rrc@llawyr CClase]$ gcc -Wall -o Prog107 Prog107a.c Prog107b.c [rrc@llawyr CClase]$ ./Prog107 Ingressa una semilla (entero positivo): 4 1817 24166 10491 3711 15407 Ingressa una semilla (entero positivo o q a terminar): 4 1817 24166 10491 3711 15407 Ingressa una semilla (entero positivo o q a terminar): 7 19564 9806 10868 22674 32531 Ingressa una semilla (entero positivo o q a terminar): 3 17747 7107 10365 8312 20622 Ingressa una semilla (entero positivo o q a terminar): q Listo [rrc@llawyr CClase]$