[ Foro de C ]

error de coma flotante programa para sacar 6 aciertos a la loteria

25-Oct-2015 19:23
Invitado ()
1 Respuestas


 
#define IN_MAIN_C
 
/* Standard include files */
#include <sys/types.h>
#include <sys/time.h>
#include <sys/socket.h>
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#include <time.h>
#include "bolas.h"
 
/* constants */
 
/* types */
 
/* prototypes */
 
/* variables */
static char MAIN_C_RCSId[]="\n$Id: main.c,v 1.2 2003/09/03 00:23:22 luis Exp $\n";
 
/* functions */
void do_usage(void)
{
  printf("Uso: bolas [ -n num_extracciones ] [ -N num_total_bolas ]\n");
  printf(" El programa realiza una extracción de num_extracciones bolas\n");
  printf(" suponiendo una urna con un total de num_total_bolas.\n");
  printf(" Las bolas no se repiten, es decir, una vez sacadas de la urna,\n");
  printf(" ya no vuelven a entrar y siempre son diferentes.\n");
  printf(" Evidentemente, no se pueden pedir mas bolas de las que hay en\n");
  printf(" la urna, así que num_extracciones deberá ser menor que num_total_bolas\n");
  printf(" (el programa provoca un error de punto flotante, si se ejecuta de ese\n");
  printf(" modo)\n");
  printf(" El número de bolas por defecto son 6, mientras que el\n");
  printf(" número total de bolas por defecto son 49.\n");
} /* do_usage */
 
/* main program */
int main (int argc, char **argv)
{
 
	extern int optind;
	extern char *optarg;
	int opt;
	int *tabla, opt_n=6, opt_N=49, i;
 
	while ((opt = getopt(argc, argv, "hn:N:")) != EOF) {
		switch(opt) {
		case 'h':
		default:
		  do_usage(); exit(0);
		case 'n':
			opt_n = atoi(optarg); break;
		case 'N':
			opt_N = atoi(optarg); break;
		}
	}
 
	tabla = new_array(opt_N);
 
	srand(time(NULL));
 
	for (i = 0; i < opt_n; i++) {
		int b = sacar_bola(tabla, rand() % tabla[1] + 1);
		printf("%3d\n", b);
	} /* for */
 
	exit(0);
	/* NOTREACHED */
} /* main */
 
 
/* $Id: main.c,v 1.2 2003/09/03 00:23:22 luis Exp $ */
 
 
#define IN_MAIN_C
 
/* Standard include files */
#include <sys/types.h>
#include <sys/time.h>
#include <sys/socket.h>
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#include <time.h>
#include "bolas.h"
 
/* constants */
 
/* types */
 
/* prototypes */
 
/* variables */
static char MAIN_C_RCSId[]="\n$Id: main.c,v 1.2 2003/09/03 00:23:22 luis Exp $\n";
 
/* functions */
void do_usage(void)
{
  printf("Uso: bolas [ -n num_extracciones ] [ -N num_total_bolas ]\n");
  printf(" El programa realiza una extracción de num_extracciones bolas\n");
  printf(" suponiendo una urna con un total de num_total_bolas.\n");
  printf(" Las bolas no se repiten, es decir, una vez sacadas de la urna,\n");
  printf(" ya no vuelven a entrar y siempre son diferentes.\n");
  printf(" Evidentemente, no se pueden pedir mas bolas de las que hay en\n");
  printf(" la urna, así que num_extracciones deberá ser menor que num_total_bolas\n");
  printf(" (el programa provoca un error de punto flotante, si se ejecuta de ese\n");
  printf(" modo)\n");
  printf(" El número de bolas por defecto son 6, mientras que el\n");
  printf(" número total de bolas por defecto son 49.\n");
} /* do_usage */
 
/* main program */
int main (int argc, char **argv)
{
 
	extern int optind;
	extern char *optarg;
	int opt;
	int *tabla, opt_n=6, opt_N=49, i;
 
	while ((opt = getopt(argc, argv, "hn:N:")) != EOF) {
		switch(opt) {
		case 'h':
		default:
		  do_usage(); exit(0);
		case 'n':
			opt_n = atoi(optarg); break;
		case 'N':
			opt_N = atoi(optarg); break;
		}
	}
 
	tabla = new_array(opt_N);
 
	srand(time(NULL));
 
	for (i = 0; i < opt_n; i++) {
		int b = sacar_bola(tabla, rand() % tabla[1] + 1);
		printf("%3d\n", b);
	} /* for */
 
	exit(0);
	/* NOTREACHED */
} /* main */
 
 
/* $Id: main.c,v 1.2 2003/09/03 00:23:22 luis Exp $ */
 
 
#define IN_MAIN_C
 
/* Standard include files */
#include <sys/types.h>
#include <sys/time.h>
#include <sys/socket.h>
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#include <time.h>
#include "bolas.h"
 
/* constants */
 
/* types */
 
/* prototypes */
 
/* variables */
static char MAIN_C_RCSId[]="\n$Id: main.c,v 1.2 2003/09/03 00:23:22 luis Exp $\n";
 
/* functions */
void do_usage(void)
{
  printf("Uso: bolas [ -n num_extracciones ] [ -N num_total_bolas ]\n");
  printf(" El programa realiza una extracción de num_extracciones bolas\n");
  printf(" suponiendo una urna con un total de num_total_bolas.\n");
  printf(" Las bolas no se repiten, es decir, una vez sacadas de la urna,\n");
  printf(" ya no vuelven a entrar y siempre son diferentes.\n");
  printf(" Evidentemente, no se pueden pedir mas bolas de las que hay en\n");
  printf(" la urna, así que num_extracciones deberá ser menor que num_total_bolas\n");
  printf(" (el programa provoca un error de punto flotante, si se ejecuta de ese\n");
  printf(" modo)\n");
  printf(" El número de bolas por defecto son 6, mientras que el\n");
  printf(" número total de bolas por defecto son 49.\n");
} /* do_usage */
 
/* main program */
int main (int argc, char **argv)
{
 



Son 3 listados una liberia hearder 2 programas en c, saque 5 aciertos cuando lo tenia en stos de los atari st, profesor nacho cabanes puede corregir el error de coma flotante


30-Oct-2015 23:50
Nacho Cabanes (+31)

Explica un poco más lo que quieres y dónde está el error. De lo contrario, es muy trabajoso revisar más de 200 líneas de código poco claro.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)