¿Cómo programar si los 6 números 1, 3, 5, 7, 9, 11 y 13 están ordenados aleatoriamente en 2 grupos?
Si desea lograr eficiencia, necesita una estructura de datos más compleja. Los números aquí son relativamente pequeños, así que utilice un método simple.
#includelt;stdio.hgt;
#includelt;stdlib.hgt;
void main()
{
int datos[]={1, 3, 5, 7, 9, 11, 13};
int i, j
aleatorio(); p>
p>
j=random(5) 1;
printf("primero:");
for(i=1;ilt;=3 ;i)// Selecciona aleatoriamente tres números
{
while(data[j]==0)//Si la posición de la matriz es 0, continúa seleccionando aleatoriamente
{
j=aleatorio(5) 1;
}
printf("d ", datos[j]); >
data[ j]=0; //Una vez seleccionada la matriz, se debe establecer en 0 para evitar la selección repetida en el futuro
}
printf(" \nsegundo:"); //Los números restantes que no son 0 se dividen en el segundo grupo
for(i=0;ilt;=6;i)
{
if(datos[i]! =0)
printf("d ", datos[i])
}
getch();
}
Resultado de la ejecución:
primero: 9 7 5
segundo: 1 3 11 13
primero: 11 3 7
segundo: 1 5 9 13
Si quieres que los resultados sean más aleatorios y generales, puedes modificar el código tú mismo
Si eres perfeccionista, puedes cambiarlo a una estructura de lista enlazada, que será mucho más eficiente