Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[SOLUCIONADO] ¿Dónde está el error?

Estas en el tema de ¿Dónde está el error? en el foro de C/C++ en Foros del Web. Hola a todos. Estoy haciendo un programa que genera aleatoriamente ceros y unos. Cada vez se generan 5 números mezclando ambos. Quiero hacer 2 cosas: ...
  #1 (permalink)  
Antiguo 19/08/2013, 11:37
Musiker
Invitado
 
Mensajes: n/a
Puntos:
¿Dónde está el error?

Hola a todos. Estoy haciendo un programa que genera aleatoriamente ceros y unos. Cada vez se generan 5 números mezclando ambos. Quiero hacer 2 cosas:

1º contar las veces que sale el 0 (eso ya lo tengo conseguido),

2º y que el programa muestre los resultados de todas las tiradas (entendiendo por "tirada" las veces que se generan los 5 números).

Es decir, que si ha hecho 5 tiradas, que muestre por ejemplo:

en la tirada 1 hubo 3 ceros

en la tirada 2 hubo 5 ceros

en la tirada 3 hubo 1 cero

...

Lo que he intentado hacer para solucionarlo es guardar los resultados de cada tirada en un array, y luego mostrar los resultados almacenados, pero no sale. Sólo muestra los ceros totales, no los de cada "tirada". No sé dónde está el fallo y ya le he dado muchas vueltas... ¿Alguien me ayuda, por favor? (Está compilado en Turbo Borland C++ 4.5)

Código:
#include <stdlib.h>
#include <stdio.h>
#include <time.h>

int main(void)
{
	 int numeros=0, cajanumeros[100], cajadeceros[100], ceros=0, veces=0, i=0;

	 randomize();


	 printf("¿CUANTAS VECES DESEA GENERAR LOS NUMEROS?\n\n");
	 scanf (" %d", &veces);



	 for(numeros=1; numeros<=5; numeros++)
		{
			for(i=1; i<=veces; i++)
			{
				cajanumeros[numeros] = (rand() % 2);

				printf(" %d", cajanumeros[numeros]);

				if((cajanumeros[numeros])==0)
				{
					 ceros=ceros+1;
				}

			 }
		 }

	  for(i=1; i<=veces; i++)     //AQUI GUARDO LOS CEROS
		{
		cajadeceros[veces]=ceros;
		}


 for(i=1; i<=veces; i++)    //AQUI MUESTRO LOS CEROS DE CADA TIRADA (PROBLEMA)
		{
		cajadeceros[veces]=ceros;
		printf("\n\nEl numero de ceros es: %d ceros en esta tirada\n", cajadeceros[veces]);
		 }


} // MAIN
Muchas gracias por adelantado
  #2 (permalink)  
Antiguo 19/08/2013, 14:17
 
Fecha de Ingreso: agosto-2013
Ubicación: Galicia
Mensajes: 8
Antigüedad: 10 años, 8 meses
Puntos: 1
Respuesta: ¿Dónde está el error?

No programo en C, pero esta respuesta es fácil:
Debes hacer primero el loop de las tiradasdefinidas por el usuario, despues generas los 5 números y cuentas los 0s (ten en cuenta que hay que poner a 0 la cuenta de ceros en cada tirada)
Despues ya puedes mostrar los resultados
  #3 (permalink)  
Antiguo 19/08/2013, 14:31
Musiker
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: ¿Dónde está el error?

Gracias, pero los ceros los he conseguido ya contar, pero no puedo mostrar adecuadamente los resultados.
  #4 (permalink)  
Antiguo 20/08/2013, 12:38
 
Fecha de Ingreso: agosto-2013
Ubicación: Galicia
Mensajes: 8
Antigüedad: 10 años, 8 meses
Puntos: 1
Respuesta: ¿Dónde está el error?

Bueno si todo funciona correctamente según tú, el problema está en que nunca reseteas la cuenta de ceros, y la variable "ceros" siempre va en aumento a pesar de cambiar de tirada
  #5 (permalink)  
Antiguo 21/08/2013, 05:33
Musiker
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: ¿Dónde está el error?

Cita:
Iniciado por NiciusB Ver Mensaje
Bueno si todo funciona correctamente según tú, el problema está en que nunca reseteas la cuenta de ceros, y la variable "ceros" siempre va en aumento a pesar de cambiar de tirada
Gracias!

Etiquetas: int, numero, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:58.