wowmiguelfcp
Power Member
Boas pessoal.
Eu tenho um enxerto de código que me gera 5 números diferentes. Ele funciona bem, no entanto o código é extenso porque vou caso a caso. Como são apenas 5 números, não há stress, mas caso fosse mais, não faz sentido ir caso a caso. O que gostava de saber é como posso optimizar/reduzir o código, para que independentemente da quantidade de números a gerar apenas faça diferença no nº de vezes que o ciclo corre. Provavelmente será algo simples, mas de momento não me ocorre nada. O código que tenho de momento é este:
Obrigado pela atenção.
Cumprimentos
Eu tenho um enxerto de código que me gera 5 números diferentes. Ele funciona bem, no entanto o código é extenso porque vou caso a caso. Como são apenas 5 números, não há stress, mas caso fosse mais, não faz sentido ir caso a caso. O que gostava de saber é como posso optimizar/reduzir o código, para que independentemente da quantidade de números a gerar apenas faça diferença no nº de vezes que o ciclo corre. Provavelmente será algo simples, mas de momento não me ocorre nada. O código que tenho de momento é este:
Código:
//Gerar números (1 a 50)
/*1º*/ numeros[0] = rand() % 50 + 1;
/*2*/ numeros[1] = rand() % 50 + 1;
if (numeros [0] == numeros[1])
{
while (1)
{
numeros[1] = rand() % 50 + 1;
if (numeros [0] != numeros[1])
break;
}
}
/*3*/ numeros[2] = rand() % 50 + 1;
if (numeros[0] == numeros[2] || numeros[1] == numeros[2]) //Não há necessidade comparar o 0 com o 1, porque ja foi feito antes.
{
while (1)
{
numeros[2] = rand() % 50 + 1;
if (numeros[0] != numeros[2] && numeros[1] != numeros[2])
break;
}
}
/*4*/ numeros[3] = rand() % 50 + 1;
if (numeros[0] == numeros[3] || numeros[1] == numeros[3] || numeros[2] == numeros[3])
{
while(1)
{
numeros[3] = rand() % 50 + 1;
if (numeros[0] != numeros[3] && numeros[1] != numeros[3] && numeros[2] != numeros[3])
break;
}
}
/*5*/ numeros[4] = rand() % 50 + 1;
if (numeros[0] == numeros[4] || numeros[1] == numeros[4] || numeros[2] == numeros[4] || numeros[3] == numeros[4])
{
while(1)
{
numeros[4] = rand() % 50 + 1;
if (numeros[0] != numeros[4] && numeros[1] != numeros[4] && numeros[2] != numeros[4] & numeros[3] != numeros[4])
break;
}
}
Obrigado pela atenção.
Cumprimentos