cómo mostrar el porcentaje del generador de números aleatorios en C

Parece que no puedo averiguar qué hacer. Estoy tratando de practicar con rand () en C, pero no sé cómo hacer la otra parte.

Quiero que la salida se vea como:

Monedas: Tirones: 10 Cabezas: 40% Cola: 60%

Ahora mismo tengo esto como mi código:

#include  #include  int main() { int i, value; for(i=0; i < 10; i++){ value = rand()%2; printf("Coin:\n____\n Flips: 10\n"); } return 0; } 

Quiero que genere caras o colas y luego muestre un porcentaje de lo que tenía. ¿Alguna ayuda?

El problema es que está imprimiendo durante las pruebas cuando solo debería imprimir una vez que se hayan completado. Prueba esto:

 #include  #include  int main() { int i, value; int heads = 0; srand(time(NULL)); /* seed for rand */ for(i=0; i < 10; i++){ value = rand() % 2; if (value == 1) { heads++; } } printf("Coin:\n____\n Flips: 10\n"); printf(" Heads: %d%%\n", heads * 10); printf(" Tails: %d%%\n\n", (10 - heads) * 10); return 0; } 

Hay algo de malo en esto. No estás haciendo un seguimiento de nada para obtener los porcentajes. Tenga en cuenta que esto es más “pseudocódigo”. No lo he probado, por lo que podría tener un error tipográfico.

 int main() { int i, value; int headsCount = 0; int tailsCount = 0; for(i=0; i < 10; i++){ value = rand()%2; if (value == 0) headsCount++; else tailsCount++; printf("Coin:\n____\n Flips: %d\n", i+1); printf(" Heads: %d%%\n", (headsCount * 100) / (i+1))); printf(" Tails: %d%%\n\n", (tailsCount * 100) / (i+1))); } return 0; } 

value / value será igual a 1 o causará una división por cero.

value / 10 le dará un resultado menor o igual a 1, pero cualquier valor menor que 1 se redondeará a cero porque es un número entero.

value * 100 / 10 le dará un resultado menor o igual a 100 (un porcentaje).

100 - value * 100 / 10 le dará un porcentaje opuesto.